Я попытался понять процесс сохранения модели с несколькими отношениями, но я до сих пор не могу понять, как это сделать «кошерный» способ.Laravel4 - Сохранение модели с несколькими отношениями/внешними ключами
Для начала - у меня есть модель событий, которая принадлежит к категории (Eventcat) и Адрес:
// Event.php
class Event extends Eloquent {
protected $table = 'events';
public function location()
{
return $this->belongsTo('Location');
}
public function eventcat()
{
return $this->belongsTo('Eventcat');
}
public function users()
{
return $this->belongsToMany('User');
}
}
// Location.php
class Location extends Eloquent
{
protected $table = 'locations';
public function events()
{
return $this->hasMany('Event');
}
}
// Eventcat.php
class Eventcat extends Eloquent
{
protected $table = 'eventcats';
public function events()
{
return $this->hasMany('Event');
}
}
Я посеяна базу данных с несколькими категориями и места, и теперь я пытаюсь получить события, сохраняющие работу. Я думал, что $event->eventcat()->associate($eventcat)
будет работать, но я получил ошибку Call to undefined method eventcat()
.
public function postCreateEvent() {
$event = new Event();
$eventcat = Eventcat::find(Input::get('event-create-eventcat[]'));
$location = Location::find(Input::get('event-create-location[]'));
$event->title = Input::get('event-create-title');
$event->description = Input::get('event-create-description');
$event->price = Input::get('event-create-price');
$event->start_date = Input::get('event-create-start_date');
$event->end_date = Input::get('event-create-end_date');
$event->eventcat()->associate($eventcat);
$event->location()->associate($location);
$event->save();
}
Я прочитал документацию, API и несколько потоков здесь, но я до сих пор не могу понять, что лучший способ справиться с этим.
Спасибо за ответы!
Да, это была проблема. Я действительно думал о том же ответе, вернулся сюда, чтобы поделиться и увидеть твою :) Большое спасибо! – troophel