由于某种原因我在控制器中创建新功能时,它不起作用。当我将代码从此函数(getUnitsNotIn)设置为另一个函数(索引)时,该代码有效。 有人知道为什么会这样吗?
我的UnitsController.php操作
public function index(){
$items = Unit::select('parent_id')->where('parent_id','!=',NULL)->get()->toArray();
return Units::whereNotIn('id',$items)->get();
}
public function getUnitsNotIn(){
$items = Unit::select('parent_id')->where('parent_id','!=',NULL)->get()->toArray();
return Units::whereNotIn('id',$items)->get();
}
我的api.php
Route::apiResource('/units', 'UnitController');
Route::get('/units/notIn', 'UnitController@getUnitsNotIn');
简而言之,我做的任何新控制器功能都无法使用。我试图制作一个新的控制器,并且发生了同样的事情。 如何解决此问题?
答案 0 :(得分:2)
将此更改为
Route::get('/units-notIn', 'UnitController@getUnitsNotIn');
您定义了一个资源控制器,因此此处以unit / notin为单位,notin这样定义一个id
它调用您的显示功能默认。
答案 1 :(得分:1)
由于apiResource()
,它不起作用。资源路由采用/units/{id}
。因此,当您呼叫/units/notIn
路由时,假设notIn
为id
,而行动呼叫show()
您需要使用其他名称。
Route::get('/un/notIn', 'UnitController@getUnitsNotIn');
动词,路径,操作,路线名称
GET
/units/{id}
show
units.show