如何在Laravel / Ardent模型中为具有hasOne关系的另一个表设置$ fillable属性?

时间:2014-08-25 05:35:51

标签: php laravel laravel-4 eloquent ardent

假设,我有这些热心的模型

class User extends \LaravelBook\Ardent\Ardent
{
     public $autoHydrateEntityFromInput = true;
     protected $fillable = array('username', 'password', 'address');
     protected $table = 'Users';
     public static $relationsData = array(
     'location'  => array(self::HAS_ONE, 'Location');
}

class Location extends \LaravelBook\Ardent\Ardent
{
     protected $fillable = array('address');
     protected $table = 'Locations';         
}

现在,当我写这样的控制器代码时,

 $user = new User;
 $user->address = Input::get('address');
 $user->push();

它不会将地址数据保存到地址表

1 个答案:

答案 0 :(得分:0)

您没有显示Party型号?

此外,Input::get('address')什么都不做,它只是从输入中返回地址。

我在这里假设,但我想你想要这样的事情:

$user = new User;
$user->locations()->create(Input::only('address'));

这将为用户创建一个新位置,从输入传入地址。


如果您尝试使用Ardent的自动水合作用,可能会有这个诀窍:

// Autohydrate the location model with input.
$location = new Location;

// Associate the new model with your user.
$user->locations()->save($location);