Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel通知将每个通知标记为已读_Php_Laravel_Laravel 5.4 - Fatal编程技术网

Php Laravel通知将每个通知标记为已读

Php Laravel通知将每个通知标记为已读,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,如何将用户的每个通知标记为已读,目前我将所有通知标记为已读,如下所示: 路线 控制器 public function destroy($userID) { $user = User::findOrFail($userID); $user->unreadNotifications->map(function($n) { $n->markAsRead(); }); return

如何将用户的每个通知标记为已读,目前我将所有通知标记为已读,如下所示:

路线

控制器

    public function destroy($userID)
    {
        $user = User::findOrFail($userID);
        $user->unreadNotifications->map(function($n) {
            $n->markAsRead();
        });

        return back();
    }
形式


{{method_field('DELETE')}
{{csrf_field()}}
标记为已读。

如果您的表单中有以下内容:

<form method="post" action="notification/destroy/{{ Auth::id() }}">
    {{ method_field('DELETE') }}
    {{ csrf_field() }}
    <input type="hidden" name="notification_uuid" value="{{ $notification->id }}">
    <button type="submit">Mark as read.</button>
</form>
public function destroy($userID, , Request $request)
{
    $user = User::findOrFail($userID);
    $user->unreadNotifications->map(function($n) use($request) {
        if($n->id == $request->get('notification_uuid')){
            $n->markAsRead();
        }
    });

    return back();
}
试试这个:

public function destroy($userID)
{
    $user = User::findOrFail($userID);
    $user->unreadNotifications->get()->map(function($n) {
        $n->markAsRead();
    });

    return back();
}

为什么您的路由url和表单url不同?@PankajMakwana很抱歉没有复制问题中的前缀,请立即更新并将通知id作为参数传递,然后测试给定的未读通知是否与传递的id匹配@Maraboc好的,我传递了参数,但是我会检查给定的不可读通知是否与id匹配,您可以共享代码吗?在这之前,在表单中确定通知id??嗨,谢谢,奇怪的是,在map函数中未定义通知ID,但在ist定义之外,在map函数中未定义请求变量Nice似乎工作正常,您能解释一下use语句在这里的作用吗请
use($request){
?它告诉匿名函数在您的作用域之外有一个变量,我需要在函数的语句中使用;)
public function destroy($userID, , Request $request)
{
    $user = User::findOrFail($userID);
    $user->unreadNotifications->map(function($n) use($request) {
        if($n->id == $request->get('notification_uuid')){
            $n->markAsRead();
        }
    });

    return back();
}
public function destroy($userID)
{
    $user = User::findOrFail($userID);
    $user->unreadNotifications->get()->map(function($n) {
        $n->markAsRead();
    });

    return back();
}