Фон:
У меня есть две модели, Атрибут и Значение, которые являются отношениями «один ко многим».
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
произойдет до контроллера. Каков процесс, чтобы вызвать это?
Большое спасибо!
Задача ещё не решена.
Других решений пока нет …