【发布时间】:2021-12-23 08:52:59
【问题描述】:
我正在开发一个列表目录 Web 应用程序。
在这里,我希望用户(预设为审稿人)能够批准或拒绝客人发布的广告。
我在 revisor 仪表板中完成了以下操作:
<x-layout>
<div class="container">
<div class="row">
<div class="card" style="width: 18rem;">
<img src=" https://via.placeholder.com/150" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">{{$ad->title}}</h5>
<p class="card-text">{{$ad->description}}</p>
<p class="card-text">{{$ad->category->name}}</p>
<p class="card-text">{{$ad->user->name}}</p>
<p class="card-text">{{$ad->created_at->format('d/m/Y')}}</p>
<p class="card-text">{{$ad->price}},00 €</p>
<a href="{{route('ad.detail' , compact('ad'))}}" class="btn btn-primary">Vai al dettaglio!</a>
<div class="d-flex justify-content-between mt-3">
<form action="post" action="{{route('revisor.accept', $ad->id)}}">
@csrf
<button type="submit" class="btn btn-success"><ion-icon name="checkmark-outline"></ion-icon></button>
</form>
<form action="post" action="{{route('revisor.reject', $ad->id)}}">
@csrf
<button type="submit" class="btn btn-danger"><ion-icon name="trash-outline"></ion-icon></button>
</form>
</div>
</div>
</div>
</div>
</div>
</x-layout>
另外,我在RevisorController 中做了以下操作:
<?php
namespace App\Http\Controllers;
use App\Models\Ad;
use Illuminate\Http\Request;
use App\Http\Controllers\RevisorController;
class RevisorController extends Controller
{
public function __construct(){
$this->middleware('auth.revisor');
}
public function revisor(){
$ad=Ad::where('is_accepted',null)->orderBy('created_at','desc')->first();
return view('revisor', compact('ad'));
}
public function setAccepted($id,$value){
$ad=Ad::find($id);
$ad->is_accepted=$value;
$ad->save();
return redirect(route('revisor'));
}
public function accept(){
return $this->setAccepted($id,true);
}
public function reject(){
return $this->setAccepted($id,false);
}
}
在我的Routes 中,我定义了两条发布路线如下:
Route::post('/revisor/ad/{id}/accept',[RevisorController::class,'accept'])->name('revisor.accept');
Route::post('/revisor/ad/{id}/reject',[RevisorController::class,'reject'])->name('revisor.reject');
如上所述,在我看来一切似乎都是正确的,但我不明白为什么当我尝试拒绝或接受广告时,它会返回“未找到 404 页面”。
我注意到请求的 URL 仍然像这样卡住:
http://127.0.0.1:8000/post?_token=Rm5CeNOjKUoOsynv4Nkh0dpxqIJ4AE6OR8Ozxo25
然后,我尝试将几个dd() 放入控制器的功能中,但系统似乎没有将任何功能放入RevisorController。
我也试图搜索任何类型的问题的答案,但没有找到任何合适的。
有没有人可以帮我解决这些问题?
【问题讨论】:
-
“我注意到请求的 URL 仍然像这样卡住:”卡住的方式/时间/地点?
-
@Magnus 当我尝试接受/拒绝广告时
-
action="post"... 好了 -
@lagbox 好的,那是真的,我今天完全完成了......我快疯了
-
我已经投票关闭它作为一个错字问题。
标签: php laravel routes http-status-code-404