2016-03-04 3 views
1

У меня есть таблица фильмов и таблица жанров и я изложил свои отношения, как показано нижеотношения многие ко многим в Laravel 4

public function genres() 
{ 
    return $this->belongsToMany('Genre'); 
} 

и в модели Жанр

public function movies() 
{ 
    return $this->belongsToMany('Movie'); 
} 

и это, как мой контроллер выглядит, но когда я пытаюсь загрузить фильмы, фильм загружается успешно, но он возвращает ошибку, показанную ниже

$movie = new Movie(); 
$movie->status_id = Input::get('status'); 
$movie->title = Input::get('title'); 
$movie->summary = Input::get('summary'); 
$movie->duration = Input::get('duration'); 
$movie->cast = Input::get('cast_list'); 
$movie->director = Input::get('director'); 
$movie->price = Input::get('movie_price'); 
$movie->dimension = Input::get('dimension'); 
$movie->time_showing = Input::get('time_showing'); 
$movie->time_showing1 = Input::get('time_showing1'); 
$movie->photo = $photoname; 
$movie->date_showing = Input::get('date_showing'); 
$movie->save(); 
$movie->genres()->sync(Input::get('genre')); 
return Redirect::back()->with('success', 'movie added successfully'); 

И это ошибка

Аргумент 1 передается Осветите \ Database \ Красноречивых \ Отношения \ BelongsToMany :: formatSyncList() должен быть массив типа, строки заданных, называемым в E: \ Cinema \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Database \ Eloquent \ Отношения \ BelongsToMany.php на линии 599 и определены

Любой, кто может дать мне руку, я буду благодарен спасибо.

ответ

0

sync() ожидает array, так что вы можете попробовать:

$movie->genres()->sync(array(Input::get('genre'))); 

Если ваш PHP версии 5.4 или выше, вы можете использовать короткий синтаксис массива так

$movie->genres()->sync([Input::get('genre')]); 
+0

Большое спасибо Ciccio он работал – Tongi

+0

[Рад помочь] (http://stackoverflow.com/help/someone-answers) –

Смежные вопросы