【问题标题】:Delete record and show the next without full page reload?删除记录并显示下一个而不重新加载整页?
【发布时间】:2021-07-21 18:48:26
【问题描述】:

我通过转到/events/123 来显示一个事件。如果我删除了我想加载下一个可用的事件(如果它存在),否则重定向到/events/。前者可以不重新加载页面吗?我试过了,但我得到了一个404(可能是因为我仍然在删除的 id 上并且 url 没有更新)。我可以做一个完整的重定向,但不确定我是否会让自己变得更难,但是如果我做重定向,我必须通过通知等两种不同的方式解决一些问题,所以想看看我是否可以通过加载来修复它一条新记录并更新 url 字段。

public function submit()
{
    $this->event->delete();

    $event = Auth::user()->events()->first();

    $message = [
        'type' => 'success',
        'subject' => 'Event deleted',
        'message' => ''
    ];

    if ($event) {
        $this->event = $event;
        $this->emit('refreshEvents');
        $this->notify($message);
        // Update URL somehow?
    } else {
        session()->flash('message', $message);
        return redirect()->route('events');
    }
}

【问题讨论】:

    标签: laravel laravel-livewire


    【解决方案1】:

    不确定我的问题是否正确,但你可以这样做

    function show_event( $id )
    {
        $event  = Event:findOrFail($id);
        return view('event-show' , compact('event'));
    }
    
    public function submit()
    {
        $this->event->delete();
    
        $event = Auth::user()->events()->first();
    
        if ($event) {
        
            return $this->show_event( $event->id );
        
        } else {
            session()->flash('message', $message);
            return redirect()->route('events');
        }
    }
    

    【讨论】:

    • 谢谢!然后在我的 render() 中运行 show_event()?还是在 mount() 中?
    • @SeaBass 我假设您有一个显示单个事件的功能..../events/123 这条路线的功能是什么?让我们称它为FunctionShowingSingleEvent,我假设该功能在同一个控制器中......所以你只需要return $this->FunctionShowingSingleEvent( $event->id );没有别的
    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 2013-10-28
    • 2015-01-26
    • 1970-01-01
    相关资源
    最近更新 更多