背景:
我有两个模型,属性和值,这是一对多的关系。
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中
路由:: get('属性/ {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
发生在控制器之前。触发它的过程是什么?
非常感谢!