how to update first row if have multiple results in query (over laravel 5.3)
I want to update the first row only if the select query return multiple data.
Example code :
under controller :
public function update(Request $request, $idOrEmail) { return Sample::idOrEmail($idOrEmail)->firstOrFail()->update($request->validated()); }
Under App folder public function scopeidOrEmail($query, $id_or_email) { if (! is_numeric($id_or_email) && filter_var($id_or_email, FILTER_VALIDATE_EMAIL) === false) { throw (new ModelNotFoundException)->setModel(get_class($this)); }
return $query->where(function ($query) use ($id_or_email) {
$query->where('id', $id_or_email)
->orWhere('email', $id_or_email);
});
}
If i remove the firstOrFail(), the update is work. Like: return Sample::idOrEmail($idOrEmail)->update($request->validated());
But this will update the multiple rows.
Any advised ?
Please or to participate in this conversation.