【发布时间】:2020-03-24 02:18:24
【问题描述】:
我正在尝试收藏和不喜欢的帖子,如果单击它并将其插入收藏夹表中,如果再次单击它会从收藏夹表中删除它我将我的路线放在 web.php 文件中
控制器中应该在路由中调用的函数没有被调用我在那里插入dd() 方法来测试它所以我猜问题出在表单操作中而不是发送数据
<body>
...
@foreach ($posts as $post)
<div class="column">
@if ($post->showstar == true)
<form action="/favorites/delete" method="post">
<span class="foo fa fa-star checked"></span>
</form>
@endif
<h2>{{$post->title}}</h2>
<img src={{$post->url}} >
</div>
@endforeach
</body>
<script>
$(document).ready(function () {
$("form").on("click", ".foo", function () {
if ($(this).hasClass("checked")) {
$(this).removeClass("checked");
} else {
$(this).addClass("checked");
}
});
});
</script>
控制器:
class FavoritesController extends Controller
{
public function index()
{
return view('Favorites', ['favs' => Favorite::where('user_id', '1')->get()]);
}
public function view(Request $request)
{
dd("hello");
$fav = new Favorite();
$fav->user_id = $request->get('userid');
$fav->post_id = $request->get('postid');
$fav->save();
}
public function delete(Request $request)
{
dd("bye");
$fav = new Favorite();
$dfav = $fav->where('id', $request->id);
$dfav->delete();
return view('favorites');
}
public function fetch(Request $request)
{
$fav = new Favorite();
$favs = $fav->where('user_id', $request->user_id);
return view('favorites', compact('favs'));
}
}
路线:
Route::post('/favorites', 'FavoritesController@view');
Route::post('/favorites/delete', 'FavoritesController@delete');
Route::post('/favorites/fetch', 'FavoritesController@fetch');
【问题讨论】:
-
您似乎没有提交任何内容。单击跨度不会以本机方式提交表单,即使提交了,表单内也没有任何数据或建议应该收藏/不收藏哪个帖子的操作。请您显示您的
web.php文件中的路线以及您的控制器中的代码。 -
完成了,我的问题是如何将数据发送到控制器
-
你需要把
@csrf放在form之后
标签: php jquery laravel laravel-blade