Laravel Voyager: BelongsToMany

У меня есть таблица книг и авторов. Я хочу получить возможность прикреплять авторов к книгам. Я настраиваю ХЛЕБ для книг:
введите описание изображения здесь

С этими настройками я могу нажать «Изменить» и выбрать авторов для своей книги, но когда я пытаюсь сохранить книги, laravel выдает эту ошибку:

 SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'Mrs. Alivia
Stanton IV' for column 'authors_id' at row 1 (SQL: insert into
`authors_books` (`authors_id`, `books_id`) values (Mrs. Alivia Stanton IV,
55))

И это логично. Но когда я переключаюсь name в idLaravel выдает эту ошибку:

 SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in field
list is ambiguous (SQL: select `id` from `authors` inner join
`authors_books` on `authors`.`id` = `authors_books`.`authors_id` where
`authors_books`.`books_id` = 57) (View:

Я пытался использовать все комбинации, но ничего не произошло.

Модельные книги:

class Books extends Model
{
protected $fillable = ['name','img'];

public function authors()
{
return $this->belongsToMany('App\Authors');
}

public function getImgAttribute($img)
{
if(!empty($img)){
return 'storage/images/books/'.$img;
}else{
return 'storage/images/books/not-found.jpg';
}
}

}

Авторы модели:

class Authors extends Model
{

protected $fillable = ['name','img'];

public function books()
{
return $this->belongsToMany('App\Books');
}

public function getImgAttribute($img)
{
if(!empty($img)){
return 'storage/images/authors/'.$img;
}else{
return 'storage/images/books/not-found.jpg';
}
}
}

Сводная таблица
Помогите, пожалуйста!

1

Решение

Модельные книги:

class Books extends Model
{
protected $fillable = ['name','img'];

public function authors()
{
return $this->belongsToMany('App\Author','Pivot table');
}

public function getImgAttribute($img)
{
if(!empty($img)){
return 'storage/images/books/'.$img;
}else{
return 'storage/images/books/not-found.jpg';
}
}

}

Авторы модели:

class Authors extends Model
{

protected $fillable = ['name','img'];

public function books()
{
return $this->belongsToMany('App\Book,'Pivot table');
}

public function getImgAttribute($img)
{
if(!empty($img)){
return 'storage/images/authors/'.$img;
}else{
return 'storage/images/books/not-found.jpg';
}
}
}

пожалуйста, прочитайте этот документ для лучшего понимания http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]