【发布时间】:2015-11-02 22:01:41
【问题描述】:
我有资源:
Route::resource('star', 'StarController');
我想像这样添加一个新方法 POST:
Route::post('star/addPic', array('as' => 'addpic', 'uses' => 'StarController@addPic') );
Route::resource('star', 'StarController');
我尝试了多个这样的方法定义:
public function addPic($id)
{
return 'test';
}
或
public function addPic(Request $request)
{
return 'test';
}
但无论如何,当我向 star/addPic 发出 POST 请求时,我得到了一个错误:
No query results for model [App\Star].
我尝试了 GET 中的方法并且有效:
Route::get('star/addPic', array('as' => 'addpic', 'uses' => 'StarController@addPic') );
Route::resource('star', 'StarController');
但不是在 POST 中,那不起作用...
希望你能帮忙
编辑:
在尝试您的建议时,我认为该请求有效,但出现了一个新错误:
TokenMismatchException in compiled.php line 2710:
【问题讨论】:
-
addPic 是否被调用?您收到的错误是 Eloquent 查询的结果,并且肯定不是发布的 addPic 方法所做的。
-
不,addPic 不是调用。例如,当我尝试使用 requestmaker.com 发出请求时,我收到错误 HTTP/1.1 500 Internal Server Error .......跨度>
-
然后检查您的日志文件,看看为什么会出现错误。或者在您的 .env 文件中启用调试 - 然后应在浏览器中显示异常详细信息
-
调试已激活,错误是我在帖子中写的:“模型 [App\Star] 没有查询结果。”
-
您的 routes.php 中的路线顺序是否与您发布的顺序相同?当你得到错误时,你看到它是从哪里抛出的吗?
标签: php laravel post routes laravel-5