使用laravel 5.3中的multi_auth尝试删除/编辑/更新按钮。
我试图从管理仪表板中删除用户从users表中检索信息。 实际上我的第一个问题是破坏功能。
这是我的破坏路线:
Route::get('{id}',[
'as' => 'admin.destroy',
'uses' => 'AdminHomeController@destroy'
]);
这是管理员的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\User;
class AdminHomeController extends Controller
{
public function __construct()
{
$this->middleware('admin.user');
}
public function index()
{
$users = User::all();
return view("admin-home")->with('users', $users);
}
public function destroy($id)
{
$users = User::find($id);
$users->delete();
Flash::error('El usuario ' . $users->name . '$ ha sido eliminado con exito!');
return redirect()->route('admin-home');
}
}
使用删除按钮查看
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="col-sm-offset-2 col-sm-8">
@if (count($users) > 0)
<div class="panel panel-default">
<div class="panel-heading">
Todos los Usuarios
</div>
<div class="panel-body">
<table class="table table-striped user-table">
<thead>
<th>Nombre:</th>
<th> </th>
<th>Email:</th>
<th> </th>
<th>Acciones:</th>
<th> </th>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td> </td>
<td>{{ $user->name }}</td>
<td> </td>
<td>{{ $user->email }}</td>
<td> </td>
<td>
<a href="{{ route('users.destroy', $user->id) }}" onclick="return confirm('¿Seguro que desea eliminar este Usuario?')" class="btn btn-danger"><i class="glyphicon glyphicon-trash" aria-hidden="true"></i></a>
</td >
<td>
<a href="{{ route('users.edit', $user->id) }}" class="btn btn-info"><i class="fa fa-pencil-square-o" aria-hidden="true"></i></a>
</td>
<td> </td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif
</div>
</div>
</div>
</div>
@endsection
谢谢!
答案 0 :(得分:0)
检查$ id in
$users = User::find($id);
$users->delete();
对象$ users为null,因为在数据库中找不到用户或$ id不正确
答案 1 :(得分:0)
在玩完代码之后我发现这个有用了: 在视图中我有2个按钮,删除和编辑,我改变了:
{{route('users.destroy',$ user-&gt; id)}} {{route('users.edit',$ user-&gt; id)}}
有:
{{url('users.destroy',$ user-&gt; id)}} {{url('users.edit',$ user-&gt; id)}}
现在我可以看到按钮没有任何问题,现在的问题和以前一样,函数destroy给我一个错误。 这是导致错误的路线:
Route::get('{id}',[
'as' => 'admin.destroy',
'uses' => 'AdminHomeController@destroy'
]);
错误:模型[App \ User]没有查询结果。
这是我的用户模型:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
仍然找不到问题.. @edwardstock