【发布时间】:2014-05-30 11:21:43
【问题描述】:
app/models/Model.php:
<?php
class Model extends Eloquent {
public function maker()
{
return $this->belongsTo('Maker', 'maker_id', 'id');
}
}
?>
我想执行搜索。用户输入模型的名称,搜索应该返回该模型的制造商(每个模型属于某个制造商)。以下代码不起作用:
$result = Model::where('title', 'LIKE', '%test%')->maker()->paginate(10);
它给了我以下错误:
BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::maker()
有什么想法吗?
【问题讨论】:
-
显然“where”方法返回的是Builder类型的对象,而不是Model
-
嗯。您对如何解决有什么建议吗?
-
你的模型太抽象了,不是吗?而不是
Model,它应该是具体的表格,例如制作者。Maker::where('.....')->paginate(10) -
请再次阅读问题。用户通过输入模型的标题进行搜索,搜索返回该模型的相应制造商。
-
应该反过来,先做对象,然后在上面做
where:)