У меня возникает следующее: Цель: я хотел бы перечислить всех партнеров и категории, к которым они принадлежат. По сути, это отношение «многие ко многим».
Ниже приведен код: Миграция таблицы категорий партнеров
public function up()
{
Schema::create('partcats', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('partcatnameP')->unique();
$table->unsignedBigInteger('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
}
Миграция таблицы партнеров
public function up()
{
Schema::create('partners', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('partnername');
$table->string('regnumber')->unique();
$table->unsignedBigInteger('activestatus_id')->unsigned();
$table->foreign('activestatus_id')->references('id')->on('activestatuses');
$table->unsignedBigInteger('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
}
Partner_Category Migration
public function up()
{
Schema::create('partner_partcat', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('partner_id')->unsigned();
$table->foreign('partner_id')->references('id')->on('partners')->onDelete('cascade');
$table->unsignedBigInteger('partcat_id')->unsigned();
$table->foreign('partcat_id')->references('id')->on('partcats')->onDelete('cascade');
$table->timestamps();
});
}
Модели, как показано ниже:
Модель Partcat
public function partners()
{
return $this->belongsToMany('App\Partcat','partner_partcat');
}
Модель партнера
public function partcats()
{
return $this->belongsToMany('App\Partcat','partner_partcat');
}
и Контроллер партнеров, как показано ниже:
public function index()
{
//
$partners = Partner::all()->partcats();
// dd(Partner::all()->partcats());
return view('partners.index',['partners'=>$partners]);
}
Здесь я пытаюсь получить список партнеры и связанные с ними категории. Тем не менее, я получаю ошибку вызова BadMethod.