我在结构DB的列中为单个DB定义了子弹。当我在路线中调用该子弹时,能否从其他模型(例如此处的结构)中获取该子弹?
路线为:
localhost:8000/api/singles/firstTest
我在Single模型中定义了getRouteKeyName函数:
public function structure()
{
return $this->belongsTo(Structure::class);
}
public function getRouteKeyName()
{
return $this->structure()->select('slug')->first();
}
答案 0 :(得分:0)
在您的控制器中,如果您将路由指定为,则将获得firstTest
作为路由参数:
Route::get('api/singles/{slug}', 'SomeController@someAction');
然后控制器:
public function someAction(Request $request, $slug)
{
// Perform validations and policy authorization if required
$id = Single::whereHas('structure', function ($query) use($slug) {
$query->where('slug', '=', $slug);
})->first();
if(!$id){
abort(404);
}
// Process the data using $id obtained above
}