3

我有以下模型:

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”

所以,我有以下问题,或理解问题:

我正在尝试使用新数据更新模型年份,但似乎无法完成。我尝试了以下方法:

$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->year 行上,其他一切正常。

我还尝试了一些愚蠢的方法,例如:

$movies->year() = array('movie_year' => $tmp['movieyears']);

我不知道如何更新与电影模型有关的年份模型。

4

1 回答 1

2

正式的方法是使用附加、同步或关联方法。这些方法在http://laravel.com/docs/eloquent-relationships#inserting-related-models中有描述

在您的情况下,您必须执行以下操作:

$movies->year()->attach($tmp['movieyears']);

要删除关系(不是电影或年份),请使用 detach()。

于 2013-06-15T10:23:58.370 回答