这是我的情况
$user = User_picture::where('is_main','=',1)->where('user_id','=',Auth::user()->id);
这意味着用户拥有许多图片,但只有一张图片的is_main
值为1
。
我试过了。
public function active_picture()
{
return $this->hasMany('App\User_picture')->find($this->is_main);
}
除了表示它应该是对象的错误之外,它不会返回任何内容。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
HasMany旨在返回一个集合,因为它是一对多的关系方法。
如果您只想返回一个结果,则应使用具有条件的HasOne。要定义条件,请使用where()not find()。 Find()仅用于匹配模型的主键。
public function active_picture()
{
return $this->hasOne('App\User_picture')
->where('is_main', 1);
}
答案 1 :(得分:0)
您可以声明一个访问者:
在用户模型中:
//声明关系:
public function getMainPictureAttribute()
{
return $this->pictures()->where('is_main', 1)->first();
}
//声明访问者:
auth()->user()->main_picture ...
所以你可以这样做:
/*
Frees node by node recursively
*/
void freeSpace(node* t)
{
for (int i = 0; i < 27; i++)
{
if(t->children[i] != NULL)
{
freeSpace(t->children[i]);
}
}
free(t);
}
/**
* Unloads dictionary from memory. Returns true if successful else false.
*/
bool unload()
{
if(root != NULL)
{
trie = root;
freeSpace(trie);
return true;
}
else
{
return false;
}
}