我的路线:
Route::get('page/{key_id_fk}', 'PagesApiController@show');
我的功能:
public function show($key_id_fk)
{
$sub=DefintionDetails::find($key_id_fk);
// $main=Definition::where([['type','=',1],['available','=',1],['id_definition','=',$sub->id_def]])->get();
return response()->json($sub , 200);
}
邮递员路线上的page?key_id_fk=1
是错误404,但未在数据库中找到密钥,但未读取。
答案 0 :(得分:3)
您应该访问page/1
而不是page?key_id_fk=1
,因为您没有在请求网址中使用参数查询。
您的路线格式为page/$key_id_fk
。
答案 1 :(得分:0)
您在路由中将key_id_fk
设置为http://example.com/page/1
,并且将参数传递为http://example.com/page?key_id_fk=1
,区别在于第一个是 URL路由数据,第二个是 GET参数数据以从URL路由获取数据,而您拥有public function show($key_id_fk)
,并从GET参数public function show(Request $request)
和$request->key_id_fk
获取数据。
因此将URL更改为此http://example.com/page/1
格式
要么
将控制器中的获取方法更改为public function show(Request $request)
和$request->key_id_fk
答案 2 :(得分:0)
在您的控制器中
Route::get('page', 'PagesApiController@show');
使用Laravel请求捕获您的查询字符串
public function show(Request $request){
//check if key_id_value is present in your request
if ($request->has('key_id_fk')) {
//get the value of your query string
$sub=DefintionDetails::find($request->query('key_id_fk'));
// the rest of your code
}
尝试
http://localhost/page?key_id_fk=1
答案 3 :(得分:0)
在路由文件中:
Route::get('page/{key_id_fk}', 'PagesApiController@show');
在控制器中:
public function show($key_id_fk){
$sub = DefintionDetails::find($key_id_fk);
if($sub){
return response()->json(['success' => true, 'sub' => $sub]);
} else {
return response()->json(['success' => false, 'error_message' => 'No data found!']);
}
}
您的邮递员路线:
http://example.com/page/1