これは私のポストモデルです。laravel jsonのレスポンスでのタイプキャスト関係eager loading
class Post extends Model
{
use SoftDeletes;
protected $table = 'posts';
protected $fillable = ['title','featuring_image', 'brief', 'body', 'seen_count'];
public function user(){
return $this->belongsTo(User::class);
}
public function comments()
{
return $this->hasMany(Comment::class);
}
public function someComments()
{
return $this->comments()->limit(Constants::COMMENTS_COUNT_LIMIT);
}
public function commentsCount()
{
return $this->comments()
->selectRaw('post_id, count(*) as count')
->groupBy('post_id');
}
public function likes()
{
return $this->hasMany(Like::class);
}
public function isLiked()
{
return $this->likes()->where('user_id', auth()->check() ? auth()->user()->id : 0);
}
public function likesCount()
{
return $this->likes()
->selectRaw('post_id, count(*) as count')
->groupBy('post_id');
}
}
このモデルでこのクエリを実行しました。このため、テーブルなど、コメントテーブルの間の関係の
$post = Post::with(['categories', 'user', 'commentsCount', 'likesCount', 'isLiked'])->find($post->id);
、'commentsCount', 'likesCount', 'isLiked'
用このクエリの出力はアレイです。しかし、'commentsCount'
と'likesCount'
の数値を受け取る必要があり、laravel josnレスポンスで'isliked'
のブール値を出力する必要があります。
あなたはLaravelのどのバージョンを使用していますか? –
@RossWilson \t laravel v5.4.35 – AHS441