Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

wilsonlee's avatar

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 ?

0 likes
0 replies

Please or to participate in this conversation.