我使用 vue.js 和 Laravel 5.1 创建一个小型文件共享应用程序。
一切都很完美,但现在我想确保每个文件的所有者能够从他的文件中删除用户(当然,他必须首先与这些用户共享文件),因此我向名为的 URL 发出 PUT 请求/files/share
.
我的 Laravel 路线如下所示:
Route::put('/files/share', 'FileController@test');
当我跑步时php artisan route:list
它也会被列出。
客户端代码如下所示:
this.$http.put('/files/share', { some_data }, function(data) {
if(data.error){
this.$set('error', data.error);
} else {
this.$set('file', data);
}
});
我得到的确切错误是这样的:
2/2 NotFoundHttpException in Handler.php line 46:
No query results for model [App\File].
1/2 ModelNotFoundException in Builder.php line 129:
No query results for model [App\File].
但是应用程序甚至没有到达控制器,如果我只是从那里返回一些东西,错误是相同的。
对于 Laravel 路线,顺序很重要。具有动态段的路线,例如files/{file}
或者应该始终定义资源路由after那些静态的。否则 Laravel 将解释share
作为 ID 包含在您的 URL 中。
因此,正如您自己发现的那样,您只需更改路线的顺序:
Route::put('/files/share', 'FileController@test');
Route::resource('/files', 'FileController');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)