我有像这样写的可选路线
Route::get('{id}/{inid?}/{task?}', 'WelcomeController@station')->where(['id' => '[0-9]+', 'inid' => '[0-9]+']);
和像这样的控制器
public function station($id, $inid = null, $task = null)
{
$obj = Station::findOrFail($id);
$template = 'station';
$app = array(
'docTitle' => $obj->st_name,
'lat' => $obj->st_lat,
'lng' => $obj->st_lng,
'appName' => $obj->setting->set_name,
'linkId' => $id
);
if ($inid) {
$obj = $obj->instruments()->where("in_id", $inid);
$template = 'form.index';
dd($obj);
}
return view($template, compact('obj', 'app'));
}
现在实际上我失败的是如何使用模型instrument
的{{1}}内的指定$inid
获取$obj
以下是我设置模型的方法
Station
和乐器
class Station extends Model {
public function instruments()
{
return $this->hasMany('App\Instrument', 'in_stid');
}
}
希望有人能告诉我在哪里可以查看官方文档来解决这个问题
由于
答案 0 :(得分:1)
也许你正在寻找这样的东西?
替换
$obj = $obj->instruments()->where("in_id", $inid);
与
$obj = Station::where('id', $id)->with(['instruments' => function($query)
{
$query->where('in_id', $inid);
}])->get();