У меня есть две таблицы: booksmandala_originals и blog_categories. Соотношение между этими двумя соотношениями много-много, и имя сводной таблицы bksm_original_categories. Все остальное полностью работает нормально, например, данные сохраняются, обновляются, но когда я пытаюсь получить данные из blog_categories, они дают мне ноль, даже если они имеют данные типа
В моем
BooksmandalaOriginal. php
public function blog_categories()
{
return $this->belongsToMany('App\Models\Admin\BlogCategory', 'bksm_original_categories','bksm_originals_id','category_id')->withTimestamps();
}
В моем блоге. php
public function bksm_originals()
{
return $this->belongsToMany('App\Models\Admin\BooksmandalaOriginal','bksm_original_categories','bksm_originals_id','category_id')->withTimestamps();
}
Моя сводная миграция выглядит следующим образом.
Schema::create('bksm_original_categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedInteger('bksm_originals_id');
$table->unsignedInteger('category_id');
$table->foreign('bksm_originals_id')->references('id')->on('booksmandala_originals')->onDelete('cascade');
$table->foreign('category_id')->references('id')->on('blog_categories')->onDelete('cascade');
$table->timestamps();
}
);
Когда я пытаюсь получить оригиналы bookmandala из таких категорий блогов, как это
$category = BlogCategory::where('id',$id)->first();
$category->bksm_originals;
// It return empty array
Но если я так и делаю.
$blog = BooksmandalaOriginal::find(1);
$blog->blog_categories;
// It return correct values
Я также пытался сделать это
$category = BlogCategory::find($id);
$blogs = $category->whereHas('bksm_originals', function($query) use ($category){
$query->whereIn('id',$category->id);
})->get();
Это дает мне эту ошибку
Argument 1 passed to Illuminate\Database\Query\Builder::cleanBindings() must be of the type array, int given