我有以下型号:
class Movie extends Eloquent {
protected $primaryKey = "movie_id";
public function detail()
{
return $this->hasOne('Detail');
}
public function firstpage()
{
return $this->hasOne('Firstpage');
}
public function country()
{
return $this->belongsToMany('Countries','movies_countries','movie_id','country_id');
}
public function year()
{
return $this->hasOne('Years');
}
public function media() {
return $this->hasMany('Media');
}
}
这是感兴趣的模型:
class Years extends Eloquent {
protected $table = 'movies_years';
protected $primaryKey = "relation_id";
public function movie()
{
return $this->belongsTo('Movie');
}
DBTable多年来有一个字段“movie_year”和“movie_id”
所以,我有以下问题或理解问题:
我正在尝试使用新数据更新Model Years,但似乎无法完成它。我尝试了以下方法:
$movies = Movie::find($tmp['movie_id']);
$movies->title = $tmp['title'];
$movies->title_product = $tmp['title_product'];
$movies->title_orginal = $tmp['title_original'];
$movies->year = array('movie_year' => $tmp['movieyears']);
$movies->push();
眼睛在$ movies->年份行,其他一切正常。
我也尝试了一些愚蠢的事情:
$movies->year() = array('movie_year' => $tmp['movieyears']);
我不知道如何更新与电影模型有关系的年模型。
答案 0 :(得分:1)
官方方法是使用附加,同步或关联方法。这些方法在http://laravel.com/docs/eloquent-relationships#inserting-related-models
中描述在你的情况下,你必须做这样的事情:
$movies->year()->attach($tmp['movieyears']);
要删除关系(不是电影或年份),请使用detach()。