Как в Laravel eloquent получить «Нет результатов запроса для модели». для «Принадлежит» отношения?

Фон:

У меня есть две модели, Атрибут и Значение, которые являются отношениями «один ко многим».

class Attribute extends Model
{
public function values()
{
return $this->hasMany(Models\Value::class);
}
}class Value extends Model
{
public function attribute()
{
return $this->belongsTo(Models\Attribute::class);
}
}

В базе данных ниже представлены только записи:

attributes
id           name
3            xxxx
4            yyyy

values
id      attribute_id     value
1           3             ooo
2           4             ppp
4           3             qqq

В api.php

Route :: get (‘attribute / {attribute} / values ​​/ {value}’, ‘ValueController @ show’);

В контроллере:

public function show(Models\Attribute $attribute, Models\Value $value)
{
$value = $attribute->attributeValues->find($value);

return $value;
}

Ситуации:

  • Ситуация 1: По запросу {{url}}/attribute/3/values/1конечно, я могу получить правильный объект;

  • Ситуация 2: По запросу {{url}}/attribute/3/values/2Я получил пустой ответ с кодом 200;

  • Ситуация 3: По запросу {{url}}/attribute/3/values/3Я получил ошибку No query results for model [App\\Models\\Value]. с кодом 404;

  • Ситуация 4: По запросу {{url}}/attribute/100/values/1Я получил ошибку No query results for model [App\\Models\\Attribute]. с кодом 404.

Вопрос:

Очевидно, ситуация 3&4 дать правильный ответ, но ситуация2 нет. У меня вопрос, как сделать ситуацию 2 ответ с похожей ошибкой и с кодом 404.

Кажется No query results for model произойдет до контроллера. Каков процесс, чтобы вызвать это?

Большое спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …