我正在尝试将:: post函数应用于具有where过滤器的路由。它没有where过滤器。缺少什么?
这有效:
Route::post('/actors/Chelsea_Handler', [
'uses' => 'StarsController@infoupdate',
'as' => 'infoupdate',
]);
这不起作用,但为什么?
Route::post('/{type}/Chelsea_Handler', [
'uses' => 'StarsController@infoupdate',
'as' => 'infoupdate',
])->where(['type' => 'actors']);
然后控制器中的函数更新一些数据库表。
public function infoupdate(Request $request, $type){
if(Auth::guest()){
return redirect('login');
}
elseif(Auth::user()->id == 1){
DB::table('stars')->where('id', $request->id)->update(['info' => 'test']);
return back();
}else{
return redirect('login');
}
}
答案 0 :(得分:0)
你有没试过这个?
Route::post('/{type}/Chelsea_Handler', [
'uses' => 'StarsController@infoupdate',
'as' => 'infoupdate',
])->where('type', 'actors');
答案 1 :(得分:0)
你可能有另一条类似的路线。
应用正试图找到/{type}
路线。
Route::post('/{type}/Chelsea_Handler', [
'uses' => 'StarsController@infoupdate',
'as' => 'infoupdate',
])->where(['type' => 'actors']);
但是你可以在你的路线文件中找到类似的东西:
Route::post('/{anythingElse}/something', ['uses' => 'SomeController@foo']);
我不建议第一个段有大括号,app会使用这个模式的第一个路径。
答案 2 :(得分:0)
路径中的位置应该是网址中的约束,而不是查询,例如where(['id' => '[0-9]+', 'name' => '[a-z]+']);
如果您需要查询,可以在控制器中使用它,如下所示
$actors = Model::where('type','actors')->get();