Bla*_*goh 5 laravel laravel-5.5
我正在使用Laravel 5.5.13.
我的目标是创建一个这样的端点:
/api/items/{name}?kind={kind}
kind查询字符串传入的可选参数在哪里.
我目前的路线api.php如下:
Route::get('items', 'DisplaynameController@show'); 
我现在的控制器是这样的:
public function show(Request $request)
{
    if ($request->input('kind') {
        // TODO
    } else {
        return Item::where('name', '=', $request->input('name'))->firstOrFail();
    }
}
一世
我目前正在使用,$request->input('name')但这意味着我需要?name=blah在查询字符串中提供.我试图让它成为路线的一部分.
请你指点一下.
该$name变量是一个路线PARAM,而不是查询参数,这意味着你可以直接将它传递给函数作为参数.
所以,如果你的路线是这样的:
Route::get('items/{name}', 'DisplaynameController@show'); 
你的功能应该是这样的:
public function show($name, Request $request) // <-- note function signature
{
    if ($request->has('kind') {
        // TODO
    } else {
        return Item::where('name', '=', $name)->firstOrFail(); // <-- using variable
    }
}
另一种选择是将变量作为动态属性获取,如下所示:
public function show(Request $request)
{
    if ($request->has('kind') {
        // TODO
    } else {
        return Item::where('name', '=', $request->name)->firstOrFail();
    }
}
请注意,我们将name值作为$request对象的动态属性访问,如下所示:
$request->name
有关更多详细信息,请查看文档的Routing> Route参数和Request> Retrieving input部分.
| 归档时间: | 
 | 
| 查看次数: | 6534 次 | 
| 最近记录: |