Похоже, вы используете привязку модели маршрута для разрешения $field
. И использовать $stream->with('fields')->get();
для загрузки отношения.
Это все работает как задумано, я думаю, здесь есть недоразумение о том, как работают привязка модели маршрута и отношения.
$stream->with('fields')->get();
Это загрузит все потоки, так как он начинает новый запрос и аналогично выполнению Stream::with('fields')->get()
.
Если вам нужно конкретное поле для вашего потока, вы можете сделать:
$field = $stream->fields()->findOrFail($fieldId);
В вашем методе контроллера, который будет выглядеть примерно так
// streams/1/fields/1
public function show(Stream $stream, $fieldId)
{
// findOrFail will throw a 404 if the field could not be found for the specific stream
$field = $stream->fields()->findOrFail($fieldId);
dd($field);
}
$stream
с идентификатором 1
(для вашего примера url) будет разрешен привязкой модели маршрута.
В противном случае это, вероятно, уже работает, если вы настроили правильную привязку модели маршрута:
// streams/1/fields/1
public function show(Stream $stream, Field $field)
{
dd($field);
}
Однако это также загрузит поле для другого потока (поле не принадлежит), поскольку оно не знает, как охватить запрос для потока с идентификатором 1
.