【问题标题】:Ajax Post to Controller ActionAjax 发布到控制器操作
【发布时间】:2013-08-10 11:08:41
【问题描述】:

如何在 Laravel 4 的控制器中调用动作?!我试过这样:

$.post('/tutorials/rate', {id:tutID, rating : rating});

在我的控制器中我有这个:

public function rate()  {
return whatever;
}

在我的 routes.php 中:

Route::get('/tutorials/rate', array('uses' => 'TutorialController@rate'));

但它不起作用....

更新:我自己修复了...将我的控制器功能更改为:

public function post_rate() {
return whatever;
}

【问题讨论】:

    标签: jquery ajax laravel laravel-4


    【解决方案1】:

    您通过 Jquery 发布,但随后在 Laravel 中使用 Route::get 方法。

    应该是 Route::post()

    路线

    Route::Controller('tutorials');
    

    控制器教程

    public function postRate(){}
    

    【讨论】:

    • 你也可以使用控制器并做 Route::Controller('tutorials');然后在你的控制器中公开函数 postRate()。
    【解决方案2】:

    您使用$.post(),这意味着您正在使用 POST 请求发送数据。
    您没有掌握此方法/网址组合。

    修改您的routes.php,您就可以开始了

    Route::post('tutorials/rate', 'Tutorials@rate');
    
    <?php
    
    class Tutorials extends BaseController
    {
        public function rate()
        {
            return 'rating';
        }
    }
    

    如果我是你,我会使用资源(或者可能是 RESTfull)控制器。
    但这取决于情况-祝你好运:)

    【讨论】:

    • 嗯,给我一个 500 内部服务器错误!
    • 函数名弄错了。已修复,将 public function route() 重命名为 public function rate()。现在可以使用了吗?
    • 不,我在你修复它之前看到的那个错误......仍然无法正常工作:(
    • 双重检查(甚至单元测试) - 就像一个魅力。尝试运行composer dump-autoload -o 命令重新加载类映射
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2014-04-04
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    相关资源
    最近更新 更多