自终止如何在 laravel 8 中使用模态打开每个 post
self-termination how to open each post using modal in laravel 8
我没有正确提出我想问的问题。
我将尝试重新组织内容并post。
对所有回复的人表示抱歉。
根据 Stack Trace 屏幕截图,我认为您已附加
您没有将 $post
数据从控制器传递给 blade.php
。
检查你的代码你错过了什么:)
在您的 Routes/web.php 中,您需要将 class 传递给 blade 视图。
Route::get('/content/{id}', [PostController::class, 'show'])->where(['id' => '[0-9]+']);
然后在您的控制器中指定您的 return,在本例中它将是一个视图
return view('content', ['data' => $data]);
在post提问之前,我解决了下面写的问题。
** 问题。
当我单击 post 时,会打开一个 bootstrap 模式,我必须将来自控制器的数据放入其中。
** 进程。
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'));
}
我没有正确提出我想问的问题。 我将尝试重新组织内容并post。 对所有回复的人表示抱歉。
根据 Stack Trace 屏幕截图,我认为您已附加
您没有将 $post
数据从控制器传递给 blade.php
。
检查你的代码你错过了什么:)
在您的 Routes/web.php 中,您需要将 class 传递给 blade 视图。
Route::get('/content/{id}', [PostController::class, 'show'])->where(['id' => '[0-9]+']);
然后在您的控制器中指定您的 return,在本例中它将是一个视图
return view('content', ['data' => $data]);
在post提问之前,我解决了下面写的问题。
** 问题。
当我单击 post 时,会打开一个 bootstrap 模式,我必须将来自控制器的数据放入其中。
** 进程。
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'));
}