首先,我很抱歉,因为我是 Laravel 的新手。我想用
$request->id_anggota
作为 "POST"
方法的结果进行查询/雄辩,这样我就可以从另一个表获取 email
属性并将 email
值插入到 alokasikegiatan
表中。请帮忙!
我的代码:
public function getEmail($request)
{
$em = '';
//code...
$row_peg = DB::table('users')->where('nip', $request->id_anggota)->first()->email;
if (count($row_peg) > 0) {
$em = $row_peg;
} else {
$em = DB::table('registeredmitra')->where('sobatid', $request->id_anggota)->first()->email;
};
return $em;
}
我想在查询这个代码之前传递该代码
public function store_alok(Request $request)
{
try {
AlokasiKegiatan::insert([
'id_keg' => $request->id_keg,
'email' => $this->getEmail($request),
]);
} catch (\Exception $e) {
throw new Exception($e->getMessage());
};
}
如你所见,我称之为:
'电子邮件' => $this->getEmail($request),
但是我收到了这个错误
尝试获取非对象的属性“电子邮件”
还有其他可能的方法吗?谢谢您的帮助!
您尝试访问一条记录,即使它不存在,两次都在您的 getEmail 函数中。将
->email
移动到第一个 if
子句中,并为第二个子句添加另一个,以确保在尝试访问记录之前该记录存在。
public function getEmail($request)
{
$em = '';
//code...
$row_peg = DB::table('users')->where('nip', $request->id_anggota)->first();
if ($row_peg) {
$em = $row_peg->email;
} else {
$row = DB::table('registeredmitra')->where('sobatid', $request->id_anggota)->first();
if($row) {
$em = $row->email;
}
};
return $em;
}