Php Laravel 4如何在插入新记录时添加用户id作为默认值

Php Laravel 4如何在插入新记录时添加用户id作为默认值,php,laravel,laravel-4,Php,Laravel,Laravel 4,我正在为企业构建应用程序 他们有三张桌子: 1-用户表(属于公司) 2-公司表(有许多用户) 3-分支机构表(属于公司) 添加分支机构时,我希望通过向分支机构模型添加以下代码,在默认情况下在模型中传递公司id protected $attributes = array( 'company_id' => Auth::user()->company->id, ); 这将减少每次插入或更新记录时插入公司id的麻烦您可以覆盖模型的保存方法: class YourModel

我正在为企业构建应用程序

他们有三张桌子: 1-用户表(属于公司) 2-公司表(有许多用户) 3-分支机构表(属于公司)

添加分支机构时,我希望通过向分支机构模型添加以下代码,在默认情况下在模型中传递公司id

 protected $attributes = array(
    'company_id' => Auth::user()->company->id,
 );

这将减少每次插入或更新记录时插入公司id的麻烦

您可以覆盖模型的保存方法:

class YourModelClass extends Eloquent {

    public function save(array $options = array())
    {
        if( ! $this->company_id)
        {
            $this->company_id = Auth::user()->company->id;
        }

        parent::save($options);
    }

}
并非每次你都这样做:

$model = new YourModelClass;
$model->name = 'a name';
$mode->save();

它还会将公司id添加到该模型中

您不能在PHP
中定义依赖于运行时信息的属性此声明可能包括初始化,但此初始化必须是一个常量值--即,它必须能够在编译时进行评估,并且不能依赖运行时信息进行评估,试着在你的构造函数库中设置它,是的,我想这解释了为什么我的预览解决方案不起作用,很多人感谢在把你的代码调整到下面的公共函数save(array$options=array()){if(!$this->company\u id){$this->company id=Auth::user()->company->id;}家长::保存($options);}哦,是的,你说得对!刚刚编辑过。很高兴你想到了:)我想你必须通过$options来保存parent::save($options);