在Laravel雄辩中,如何获得"没有模型的查询结果"对于"属于"关系?

时间:2018-01-03 23:48:04

标签: php laravel laravel-eloquent belongs-to

背景:

我有两个模型,属性和值,这是一对多的关系。

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发生在控制器之前。触发它的过程是什么?

非常感谢!

0 个答案:

没有答案