Php 注册用户时检查记录是否存在

Php 注册用户时检查记录是否存在,php,laravel,eloquent,Php,Laravel,Eloquent,在我的寄存器控制器中-在创建用户之前,我使用以下方法检查另一个表中是否存在记录: public function getCompanyDetails($id) { $details = Company::where('company_id', $id)->first(); return $details; } protected function create(array $data) { $company_id = $data['com_id']; $

在我的寄存器控制器中-在创建用户之前,我使用以下方法检查另一个表中是否存在记录:

public function getCompanyDetails($id)
{
    $details = Company::where('company_id', $id)->first();
    return $details;
}


protected function create(array $data)
{
    $company_id = $data['com_id'];
    $company_details = $this->getCompanyDetails($company_id);
    
    if ($company_details == null) {
        return redirect()
            ->back()
            ->with('warning', 'We could not find the company');
    } else {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }
}
但是,当找不到公司记录时。我收到以下错误消息:


无法将Illumb\Http\RedirectResponse类型的对象用作数组

我相信它期待着用户类型的返回。但是,如果找不到该公司,我如何重定向回注册页面


提前感谢

尝试方法
withErrors()

但是,我建议您使用验证规则
Exists
,而不是进行更多查询并手动返回消息。你可以这样做:

$request->validate([
  'company_id' => 'required|integer|exists:App\Company,id',
]);
这样就不需要额外的逻辑和其他方法


来源:

为什么不使用?@RonvanderHeijden-我不确定是否可以使用验证检查不同表中id以外的字段rules@Davos98例如,检查我的答案。您可以对其使用
exists
规则。不能将Illumb\Http\RedirectResponse类型的对象用作数组
$request->validate([
  'company_id' => 'required|integer|exists:App\Company,id',
]);