Laravel:将参数传递给关系函数?
是否有可能将某个参数传递给关系函数?
我目前有以下几点:
public function achievements()
{
return $this->belongsToMany('Achievable', 'user_achievements')->withPivot('value', 'unlocked_at')->orderBy('pivot_unlocked_at', 'desc');
}
问题在于,在某些情况下,它不会获取unlocked_at列并返回错误。
我试图做一些事情:
public function achievements($orderBy = true)
{
$result = $this->belongsToMany (...)
if($orderBy) return $result->orderBy(...)
return $result;
}
并称之为:
$member->achievements(false)->(...)
但这不起作用。 有没有办法将参数传递到该函数或任何方式来检查是否正在使用pivot_unlocked_at
?
那么我所做的只是为我的模型添加新的属性,然后将我的条件添加到attirbute中,简单地做到了这一点。
Class Foo extends Eloquent {
protected $strSlug;
public function Relations(){
return $this->belongsTo('Relation','relation_id')->whereSlug($this->strSlug);
}
}
Class FooController extends BaseController {
private $objFoo;
public function __construct(Foo $foo){
$this->objFoo = $foo
}
public function getPage($strSlug){
$this->objFoo->strSlug = $strSlug;
$arrData = Foo::with('Relations')->get();
//some other stuff,page render,etc....
}
}
链接地址: http://www.djcxy.com/p/19855.html