我试图将我的Laravel应用程序连接到同一服务器上的Joomla 3实例. 我在Laravel里有一个ajax调用,它是POSTing到一个Laravel Controller文件(PHP),但我得到的错误是:
在.public_htmlwebappHttpControllersJoomlaController.php:12中找不到'App\Http\Controllers\JFactory'类.
我觉得我漏掉了一些简单的东西。
ajax调用是这样的:
$.ajax({
url: '{{ url() }}/settings/save',
type: "POST",
dataType:'text',
data: "test",
success: function(data) {
console.log("posted: " + data);
},
error: function(){
console.log("failure posting settings");
}
});
我把上面的url路由到JoomlaController.php,是这样的。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__) .'/../../../../' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe = JFactory::getApplication('site');
class JoomlaController extends Controller {
public function saveSettings(Request $settings) {
$user = JFactory::getUser();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$field = $db->quoteName('value') . ' = ' . $db->quote($settings);
$condition = $db->quoteName('item_id') . ' = ' . $user->get('id');
$table = $db->quoteName('nicqb_fields_values');
$columns = array('field_id','item_id', 'value');
$values = array('1', $user->get('id'), '\''.$settings.'\'');
$query
->insert($table)
->columns($db->quoteName($columns))
->values(implode(',', $values));
}
$db->setQuery($query);
$result = $db->execute();
}
}
?>
先谢谢你