对于我使用Cash.prototype.text
的同一用户模型上的关注者关系
belongsToMany()
但是由于我在使用vue加载时将其用于聊天列表,所以我在页面加载时传递public function followers() {
return $this->belongsToMany('App\User', 'followers', 'follow_id', 'user_id');
}
,这可以根据需要工作。
但是我可以说只使用一些列,例如:
json_encode(auth()->user()->followers)
我还可以使用其他方法来->select(['id', 'name', 'avatar']);
:
avatar
我又该如何通过许多认证呢?没有public function image() {
return $this->avatar || 'some-default-image';
}
方法。.
答案 0 :(得分:1)
您正在寻找的是Accessor
函数:
基本上,您可以在模型中定义访问器函数:
public function getAvatarAttribute($value)
{
return $value || 'some-default-image';
}
然后,当您使用avatar
访问->avatar
属性时,将调用accessor
函数,并将获得计算值。
================================================ =====================
评论有字数限制。
您有一个关注者表,其中每个关注者都是一个User
。您可以使用关系来过滤属于User
组的所有关注者。您希望在每个关注者上调用getInfo()
,以便将其他数据附加到您的JSON
结构中。
在这种情况下,您无需筛选每个关注者并自己调用getInfo()
。您使用accessor
方法,将getInfo()
中的代码放入accessor
方法中,并在$appends
模型中修改User
数组,然后再修改{{1} }数据将自动添加。
JSON
然后,将public function getUserInfoAttribute()
{
$userInfo = ... //use logic in your original getInfo method
return $userInfo;
}
添加到user_info
模型的User
数组中:
$appends
这样,当您的实例序列化为protected $appends = ['user_info'];
时,您的user_info
将自动包括在内。
就像我在评论中说的那样,您应该查看:
了解更多信息。
对于JSON
s,无论您使用的是API
还是Vue
或其他任何东西,当传递React
数据供前端代码使用时,您基本上是在创建{ {1}}个。仅供参考:
答案 1 :(得分:1)
尝试在您的for i in {1..6}; do
sed -n '{ '18,5773p;q' CPMIR'"${i}"'.sln }' > batch${i}.txt
done
模型中添加
User
这将强制注入您的计算属性,即。每个class User extends Model {
protected $appends = ['image'];
// other stuff..
}
模型实例中的图像,但要使其工作,您必须像User
那样命名(或创建另一个)方法,而不仅仅是getImageAttribute()
image()