我有一个公司表和一个属性表,其中包含各种值。
一个公司有很多属性,一个属性属于一个公司。
现在,我在属性表中有一个带有“account_nr_start”的值(例如,当将新用户添加到公司时,其 account_id 从 1000 开始计数)。
假设我创建了一个新的公司
,[id=5]
,其中account_nr_start 1101
(引用号)应该输入以下内容:
但它不是上传一条没有company_id的规则,这很明显,因为当我创建一个新公司时,它没有company_id可以获取,但是我如何在商店函数中获取ID,以便它仍然可以将其发送到属性表?
Controller :
public function __construct(Company $company, User $user)
{
if(Auth::user()->usertype_id == 7)
{
$this->company = $company;
}
else
{
$this->company_id = Auth::user()->company_id;
$this->company = $company->Where(function($query)
{
$query->where('id', '=', $this->company_id )
->orWhere('parent_id','=', $this->company_id);
}) ;
}
$this->user = $user;
$this->middleware('auth');
$page_title = trans('common.companies');
view()->share('page_title', $page_title);
}
public function create(Company $company, CompaniesController $companies)
{
$companies = $companies->getCompaniesName(Auth::user()->company_id);
return view('company.create', ['company' => $company, 'id' => 'edit', 'companies' => $companies]);
}
public function store(CreateCompanyRequest $request, Company $company, Attribute $attribute)
{
$company->create($request->all());
dd($company->id);
$attribute->create($request->only('company_id', 'attribute_nr', 'value'));
return redirect()->route('company.index');
}
我尝试只是dd($company->id);但这不起作用,结果将为
null`
最佳答案
要获取创建对象的id
,您应该运行:
$company = $company->create($request->all());
dd($company->id);
而不是
$company->create($request->all());
dd($company->id);
您现在可以在创建属性
时通过这种方式传递公司ID:
$attribute->create(array_merge($request->only('attribute_nr', 'value'), ['company_id' => $company->id]);
关于php - Laravel 从存储的对象中获取 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30756352/