Вызов функции-члена delete () в строке 26 null / AdminHomeController.php:

Используя multi_auth из laravel 5.3, я пытаюсь создать кнопку удаления / редактирования / обновления.

Я пытаюсь удалить пользователя из панели администратора, получая информацию из таблицы пользователей.
На самом деле моя первая проблема с функцией уничтожения.

Это мой маршрут уничтожения:

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>&nbsp;</th>
<th>Email:</th>
<th>&nbsp;</th>
<th>Acciones:</th>
<th>&nbsp;</th>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td>&nbsp;</td>
<td>{{ $user->name }}</td>
<td>&nbsp;</td>
<td>{{ $user->email }}</td>
<td>&nbsp;</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>&nbsp;</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif
</div>
</div>
</div>
</div>
@endsection

Спасибо!

1

Решение

Проверьте $ id в

$users = User::find($id);
$users->delete();

Объект $ users имеет значение null, поскольку пользователь не найден в базе данных или $ id неверен

0

Другие решения

После игры с кодом я нашел это полезным:
В представлении у меня было 2 кнопки удаления и редактирования, я изменил:

{{route (‘users.destroy’, $ user-> id)}}
{{route (‘users.edit’, $ user-> id)}}

за:

{{url (‘users.destroy’, $ user-> id)}}
{{url (‘users.edit’, $ user-> id)}}

И теперь я могу видеть кнопки без проблем, проблема теперь та же, что и раньше, функция уничтожения дает мне ошибку.
Это маршрут, который вызывает ошибку:

Route::get('{id}',[
'as' => 'admin.destroy',
'uses' => 'AdminHomeController@destroy'
]);

Ошибка: нет результатов запроса для модели [Приложение \ Пользователь].

Это моя модель пользователя:

<?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

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector