我是Laravel的新手,我无法弄清楚如何处理控制器(和ajax)。 我在侧边栏中有一个按钮,我想在点击它时显示一个页面。
我有一个位于views / logs / system.blade.php中的视图(我想在ajax中显示的页面) 以及位于controllers / LogsController中的控制器,其中包含以下代码 -
class LogsController extends BaseController {
public function getLogs() {
return View::make('logs/system');
}
}
我的routes.php有代码 -
Route::get('/', 'HomeController@showWelcome'); // Works fine
Route::get('logs', 'LogsController@getLogs');
首先 - 我如何访问我在URL中的getLogs中获取的视图(localhost / mysite / public / logs不起作用...) 第二 - 如何在ajax调用中访问它?
我试过了 $ .get('logs',function(data){ 的console.log(数据); });
但它也不起作用。它获得500内部服务器错误.... 求救!
答案 0 :(得分:0)
您应该可以访问:localhost / mysite / public / logs
如果没有,请在你的apache和你的apache httpd.conf中启用mod_rewrite,设置:
AllowOverride All
答案 1 :(得分:0)
很可能服务器错误500(在两种情况下)都是由于您在View :: make()调用中出错而导致的。要在子文件夹中使用视图,您必须使用点符号。
所以纠正代码
class LogsController extends BaseController {
public function getLogs() {
return View::make('logs.system');
}
}
你应该很高兴,在浏览器和Ajax中,url应该可以正常加载。
如果仍有问题,请检查Laravel日志(可能是路径/到/ app / storage / logs / ...)以及Apache错误日志(可能是/var/log/apache2/error.log)。我假设你使用的是Unix / Linux操作系统。
答案 2 :(得分:0)
重写模块已开启。
我通过转到localhost / mysite / public / index.php / logs解决了这个问题,这是它所期望的URL,也许.htaccess文件中的某些内容是错误的。