正如标题所示,我无法使用delete()选项。我在网上发了很多帖子,但都找不到正确的答案。我正在Homestead上使用Laravel5.5(一周前安装,最新版本左右)。
让我给你一些代码,我真的希望有人能帮助我。
这让我头痛,奥氮平快用完了。请告诉我我做错了什么,如果遗漏了什么,请告诉我!
protected function methodNotAllowed(array $others)
{
throw new MethodNotAllowedHttpException($others);
}
这是我的控制器:
<?php
namespace App\Http\Controllers\Admin;
use Auth;
use App\Page;
use App\Http\Requests\WorkWithPage;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PagesController extends Controller
{
public function __construct() {
$this->middleware('admin');
$this->middleware('can:manageUsers,App\User');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
if (Auth::user()->isAdmin()) {
$pages = Page::paginate(20);
} else {
$page = Auth::user()->pages()->paginate(5);
}
return view('admin.pages.index', ['pages' => $pages]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('admin.pages.create')->with(['model' => new Page()]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(WorkWithPage $request)
{
Auth::user()->pages()->save(new Page($request->only([
'title','url','content'])));
return redirect()->route('pages.index')->with('status', 'Pagina succesvol aangemaakt');
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Page $page
* @return \Illuminate\Http\Response
*/
public function edit(Page $page)
{
if(Auth::user()->cant('update', $page)){
return redirect()->route('pages.index')->with('status', 'Pagina succesvol aangepast');
}
return view('admin.pages.edit', ['model' => $page]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Page $page
* @return \Illuminate\Http\Response
*/
public function update(WorkWithPage $request, Page $page)
{
if(Auth::user()->cant('update', $page)){
return redirect()->route('pages.index')->with('status', 'Dat mag jij niet');
}
$page->fill($request->only([
'title','url','content'
]));
$page->save();
return redirect()->route('pages.index')->with('status', 'Pagina succesvol aangepast');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Page $page
* @return \Illuminate\Http\Response
*/
public function destroy(Page $page)
{
if(Auth::user()->cant('delete', $page)){
return redirect()->route('pages.index')->with('status', 'Hey knul! Pssst! Wegwezen!');
}
$page->id->delete();
return redirect()->route('pages.index')->with('status', 'Page has been deleted.');
}
}
这是我的索引页(索引与后端的管理索引相同:
@extends('layouts.app') @section('content')
<div class="container">
@if (session('status'))
<div class="alert alert-info">
{{ session('status') }}
</div>
@endif
<a href="{{ route('pages.create')}}" class="btn btn-primary">Nieuwe pagina</a>
<br>
<br>
<table class="table">
<thead>
<tr>
<th>Naam</th>
<th>URL</th>
<th>Opties</th>
</tr>
</thead>
@foreach($pages as $page)
<tr>
<td>
<a href="{{ route('pages.edit', ['page' => $page->id]) }}">{{ $page->title }}</a>
</td>
<td>{{ $page->url }}</td>
<td class="text-right">
<a href="{{ route('pages.destroy', ['page' => $page->id])}}" class="btn btn-danger delete-link" data-message="Are you sure you want to delete this page?"
data-form="delete-form">
Delete
</a>
</td>
</tr>
@endforeach
</table>
{{$pages->links()}}
</div>
<form id="delete-form" action="" methode="POST">
{{method_field('DELETE')}}
{!! csrf_field() !!}
</form>
@endsection
然后是路线:
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/admin', function() {
return view('admin.index');
})->middleware('admin');
Route::resource('/admin/pages', 'Admin\PagesController', ['except' => ['show']]);
Route::resource('/admin/blog', 'Admin\BlogController', ['except' => ['show']]);
Route::resource('/admin/users', 'Admin\UsersController', ['except' => ['create', 'store', '']]);
Route::get('/home', 'HomeController@index')->name('home');
然后政策:
<?php
namespace App\Policies;
use App\User;
use App\Page;
use Illuminate\Auth\Access\HandlesAuthorization;
class PagePolicy
{
use HandlesAuthorization;
public function before($user, $ability) {
if ($user->isAdmin()) {
return true;
}
}
/**
* Determine whether the user can update the page.
*
* @param \App\User $user
* @param \App\Page $page
* @return mixed
*/
public function update(User $user, Page $page)
{
return $user->id = $page->user_id;
}
/**
* Determine whether the user can delete the page.
*
* @param \App\User $user
* @param \App\Page $page
* @return mixed
*/
public function delete(User $user, Page $page)
{
return $user->id = $page->user_id;
}
}
最后是中间件:
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class AccessAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::check() && Auth::user()->hasAnyRole(['Super Admin','Admin'])) {
return $next($request);
}
return redirect('login');
}
}
在我改变的观点中:
@foreach($model as $post)
<tr>
<td>
<a href="{{ route('blog.edit', ['post' => $post->id]) }}">{{ $post->title }}</a>
</td>
<td>{{ $post->user()->first()->name }}</td>
<td>{{ $post->slug }}</td>
<td class="text-right">
<a href="{{ route('blog.destroy', ['blog' => $post->id])}}" class="btn btn-danger delete-link" data-message="Are you sure you want to delete this page?"
data-form="delete-form">
Delete
</a>
</td>
</tr>
@endforeach
</table>
{{$model->links()}}
</div>
<form id="delete-form" action="#" methode="POST">
{{ method_field('DELETE') }}
{!! csrf_field() !!}
</form>
致:
@foreach($pages as $page)
<tr>
<td>
<a href="{{ route('pages.edit', ['page' => $page->id]) }}">{{ $page->title }}</a>
</td>
<td>{{ $page->url }}</td>
<td class="text-right">
<form action="{{ route('pages.destroy', ['page' => $page->id]) }}" method="POST" class="btn btn-danger delete-link" >
<input type="submit" value="delete"/>
{{method_field('DELETE')}}
{!! csrf_field() !!}
</form>
</td>
</tr>
@endforeach
</table>
{{$pages->links()}}
不知道从哪里开始。。。首先,您收到的异常是因为您向url发送了错误的方法。(我从来没有这样做过)但可能你在等待帖子的时候发送GET(使用删除覆盖)。你把“methode”命名错了,应该是“method”。下一个不确定这是否已消失工作$page-
我有一个Laravel项目,我试图用Storage::delete删除图像,但它似乎不起作用。我的图像位于storage\app\public\uploads文件夹中。我可以上传和编辑图像,但删除不起作用。我使用的是Laravel 8。 产品控制器。PHP PHP 网状物PHP 配置/文件系统。PHP
许多人认为,下面的htaccess可以从url中删除“public”。但我正在研究WAMP,但这不起作用: 重新启动发动机 这显示了来自Laravel框架的以下错误消息: 很抱歉,找不到您要查找的页面。1/1在RouteCollection中找不到HttpException。php第161行: 还有其他方法可以从url中删除“public”,但我想了解为什么这种方法在我这方面不起作用,因为人们在他
我正在使用 netbeans 并从数据库生成实体类。我所有插入和更新实体的合并调用都运行良好,但是当我尝试删除实体时,它不会将其从数据库中删除,也不会引发异常。有人可以帮我解决。我的代码如下: AbstractFacade.java AccountEntity.java DealerEntity.java
我正在使用DocuSign REST API来自动化文档签名。我使用sender视图允许我的客户在他们的文档上放置签名选项卡并最终发送它们。 然而,我遇到了一个问题,客户机,无论出于什么原因,需要在我们的工作流中重新开始,因此放弃了嵌入,没有保存它,也没有联系我们重新启动进程。 通常,我们会调用Update将信封标记为voided并创建一个新的信封,但由于客户端没有正确退出嵌入,因此信封仍然标记为
我正在使用Laravel8开发我的项目,现在我想从DB中删除一个数据,所以我添加了这个表单: 下面是实现这一目标的途径: 这是控制器方法: 现在的问题是,它没有工作,我的意思是它抓取正确,但它显示404未找到页面不知怎么的! 而且我也测试了这个: 但仍然显示404 NOT FOUND页面,这意味着进程没有到达控制器方法! 那么我该如何解决这个问题呢? 我非常感谢你们的任何想法或建议... 多谢了。
我正在使用Laravel 5.2(用于后端)和AngularJS用于字体端构建一个REST完整的Web应用程序。我通过使用API连接到Laravel后端。现在我偶然发现了以下问题:我可以正确上传图像,但再次删除它是不工作的。 这些文件将上载到Larvel public/images/upload/文件夹中。这是我的Angular服务(单击“删除”按钮时触发的http请求),其中变量imageToD