控制器和ajax在laravel 4

时间:2013-11-20 12:56:20

标签: laravel-4

我是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内部服务器错误.... 求救!

3 个答案:

答案 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文件中的某些内容是错误的。