Saturday 15 January 2011

php - Laravel - Store data in HasMany relationship from a multi-select form -



php - Laravel - Store data in HasMany relationship from a multi-select form -

a user can select multiple options:

<!-- select multiple --> <div class="form-group"> <label class="col-md-4 control-label" for="bedrooms">bedrooms</label> <div class="col-md-4"> <select id="bedrooms" name="bedrooms[]" class="form-control" multiple="multiple"> <option value="1" selected="selected">studio</option> <option value="2">1</option> <option value="3">2</option> <option value="4">3</option> <option value="5">4</option> <option value="6">5</option> <option value="7">6+</option> </select> </div> </div>

i want store these variables in table - bedrooms, on separate rows can include them in queries. each sleeping room associated criteria_id:

i have tried utilize such queries $criteria->bedrooms()->savemany(input::get('property_type')); shown in laravel's documentation, no success - error:

argument 1 passed illuminate\database\eloquent\relations\hasoneormany::save() must instance of illuminate\database\eloquent\model, string given

and $criteria->bedrooms()->attach(input::get('property_type')); returns error: call undefined method illuminate\database\query\builder::attach()

relation:

criteria -

public function bedrooms() { homecoming $this->hasmany('bedroom'); }

many help.

savemany work in scenario, need convert input array set of new models first. assuming know criteria id, seek this:

foreach (input::get('bedrooms') $bedroom) { $selected[] = new bedroom(['bedroom' => $bedroom]); } $criteria = criteria::find($criteria_id)->bedrooms()->savemany($selected);

php laravel laravel-4 eloquent one-to-many

No comments:

Post a Comment