Vzťah Mnoho k mnohým v

Mám tabuľku filmov a tabuľku žánrov a uviedol som svoje vzťahy, ako je uvedené nižšie

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

a v žánrovom modeli

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

a takto vyzerá môj ovládač, ale keď sa pokúsim nahrať filmy, film sa nahrá úspešne, ale vráti sa chyba uvedená nižšie

$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");

A to je chyba

Argument 1 prešielna IlluminateDatabaseEloquentRelationsBelongsToMany :: formatSyncList () musí byť typu poľa, zadaného reťazca, zavolaného E: CinemavendorlaravelframeworksrcIlluminateDatabaseEloquentRelationsBelongsToMany.php v riadku 599 a definované

Každý, kto mi dá ruku, bude vďačný, ďakujem.

odpovede:

0 pre odpoveď č. 1

sync() očakáva, že array, takže môžete skúsiť:

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

Ak je vaša verzia PHP 5,4 alebo vyššia, môžete použiť syntax krátkeho poľa

$movie->genres()->sync([Input::get("genre")]);