首页 文章

Laravel从存储对象获取id

提问于
浏览
0

我有一个公司表和一个包含各种值的属性表 .

一家公司拥有多个属性,属性属于公司 .

现在我在属性表中有一个带有'account_nr_start'的值(例如,当一个新用户被添加到公司时,其account_id从1000开始计数) .

让我说我创建一个新的 Company[id=5] ,与 account_nr_start 1101 (参考编号)它应该输入:
enter image description here

但是没有它上传没有company_id的规则,这很清楚,因为当我创建一个新公司时它没有一个company_id可以得到,但是如何在商店函数中获取ID,所以它仍然可以将它发送到属性表?

enter image description here

控制器:

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); but that doesn't work, result will be null`

1 回答

  • 1

    要获取已创建对象的 id ,您应该运行:

    $company = $company->create($request->all());
    
    dd($company->id);
    

    代替

    $company->create($request->all());
    
    dd($company->id);
    

    您现在可以通过以下方式创建 Attribute 时传递公司ID:

    $attribute->create(array_merge($request->only('attribute_nr', 'value'), ['company_id' => $company->id]);
    

相关问题