Php Laravel 4如何在插入新记录时添加用户id作为默认值
我正在为企业构建应用程序 他们有三张桌子: 1-用户表(属于公司) 2-公司表(有许多用户) 3-分支机构表(属于公司) 添加分支机构时,我希望通过向分支机构模型添加以下代码,在默认情况下在模型中传递公司idPhp 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
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);