Я получаю следующую ошибку:
Столбец не найден: 1054 Неизвестный столбец 'image_likes.gallery_image_id' в 'предложении where' (SQL: выберите * из image_likes
, где image_likes
. gallery_image_id
в (1) и deleted_at
равно нулю, а user_id
= 1 и image_likes
. deleted_at
равно нулю)
всякий раз, когда я добавляю function ($query)
.
строка кода ниже получает данные, но мне нужны данные, чтобы получить то, что соответствует им.
$images = GalleryImage::with('user')->get()
это то, что у меня такдалеко.
ImageLike.php
<?php
namespace App;
use App\GalleryImage;
use App\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class ImageLike extends Model
{
use SoftDeletes;
protected $fillable = [
'user_id',
'image_id'
];
}
ImageController.php
public function getImages()
{
$images = GalleryImage::with('user')
->with(['likes' => function ($query) {
$query->whereNull('deleted_at');
$query->where('user_id', auth()->user()->id);
}])->get();
return response()->json($images);
}
GalleryImage.php
<?php
namespace App;
use App\User;
use App\GalleryImage;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
class GalleryImage extends Authenticatable
{
protected $fillable = [
'image_title',
'user_id',
'file_name',
'created_at'
];
protected $table = 'images';
public function user()
{
return $this->belongsTo(User::class);
}
public function likes()
{
return $this->hasMany(ImageLike::class);
}
public function likedByMe()
{
foreach($this->likes as $like) {
if ($like->user_id == auth()->id()){
return true;
}
}
return false;
}
}