自我终止如何在laravel 8中使用模态打开每个帖子

Posted

技术标签:

【中文标题】自我终止如何在laravel 8中使用模态打开每个帖子【英文标题】:self-termination how to open each post using modal in laravel 8 【发布时间】:2021-11-10 06:53:31 【问题描述】:

我没有正确地提出我想问的问题。 我将尝试再次组织内容并发布它。 向所有回复的人道歉。

【问题讨论】:

能否分享 Stack Trace 的错误信息?为您找到解决方案会很有用 【参考方案1】:

在您的 Routes/web.php 中,您需要将类传递到刀片视图。

Route::get('/content/id', [PostController::class, 'show'])->where(['id' => '[0-9]+']);

在您的控制器中,您将指定您的回报,在这种情况下,它将是一个视图

return view('content', ['data' => $data]);

【讨论】:

感谢您的回答。当我单击模式时,是否必须像这样调用 href="javascript:functionName()" ?调用后如何将数据传递给模态?【参考方案2】:

根据堆栈跟踪屏幕截图,我认为您已附加 您没有将您的 $post 数据从控制器传递给您的 blade.php

检查你的代码你错过了什么:)

【讨论】:

是的,那部分似乎是一直被阻塞的部分。我知道我的问题是错误的,我将彻底修改内容。【参考方案3】:

在发布问题之前,我解决了如下问题。

** 问题。 当我点击一个帖子时,会打开一个引导模式,我必须将来自控制器的数据放入其中。

** 进程。 content.blade.php

<a href="" data-bs-toggle="modal" data-bs-post-id=" $post->id " data-bs-target="#open_post_modal">

 var open_post_modal = document.getElementById('open_post_modal')
    open_post_modal.addEventListener('show.bs.modal', function (event) 
        // Button that triggered the modal
        var button = event.relatedTarget;
        // Extract info from data-bs-* attributes
        var postID = button.getAttribute('data-bs-post-id');
        // postID = JSON.parse(post);

        // If necessary, you could initiate an AJAX request here
        // and then do the updating in a callback.
        // Update the modal's content.
        // var modalBody = open_post_modal.querySelector('.modal-content');
        var modalBody = $(".modal-content");
        $.ajax(
            url: '/post/'+postID,
            type: 'get',
            // data: 
            // 'type': type,
            // ,
            success: function(data) 
                // modalBody.innerhtml = data;
                modalBody.html(data);
            ,
            error: function(err) 
                console.log(err);
            
        )

    )

PostController.php

    public function show($id)
    
        $post = Post::with('channel')
            ->withCount('comments')
            ->with('likes')
            ->with('user')
            ->where('posts.id', '=', $id)
//            ->get()
            ->first();

        $comments = Comment::where('postID', '=', $id)
            ->with('user')
            ->with('likes')
            ->orderBy('group', 'desc')
            ->orderBy('order', 'asc')
            ->orderBy('depth', 'asc')
            ->get();

        return view('post.show', compact('post', 'comments'));
    

【讨论】:

以上是关于自我终止如何在laravel 8中使用模态打开每个帖子的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中单击模态后如何获取标签的 data-href 值

防止模态背景覆盖在每个打开的新模态上变暗

Bootstrap-Vue 模态:如何在 V-For 渲染列表中打开不同的模态?

如何只打开被点击的模态

Laravel 在模态窗口中加载外部 URL

验证错误laravel后保持模态对话框打开