Ошибка при добавлении класса в папку Policies в Laravel

171
27 февраля 2019, 14:20

Помогите исправить ошибку. Все ответы на похожие вопросы не помогают. Я создал раздел admin.laws , где можно создавать и удалять записи. Теперь я хочу сделать возможность редактирования. Для этого создаю класс LawPolicy следующего содержания:

<?php
namespace App\Policies;
use App\Models\ {User, Law};
class LawPolicy
{
  /**
   * Determine whether the user can manage the law.
   *
   * @param  \App\Models\User  $user
   * @param  \App\Models\Law  $law
   * @return mixed
   */
  public function manage(User $user, Law $law)
  {
      return $user->id === $law->user_id;
  }
  /**
   * Create a new policy instance.
   *
   * @return void
   */
  public function __construct()
  {
      //
  }
}

В класс AuthServiceProvider добавляю в переменную $policies :

Law::class => LawPolicy::class,

Перехожу на страницу laws/1/edit и получаю ошибку:

Cannot declare class App\Policies\LawPolicy, because the name is already in use

Основу для сайта взял из этого репозитория: https://github.com/bestmomo/laravel5-5-example

Точно такие шаги я совсем недавно проделал для другого раздела. А что с этим неправильно я не понимаю.

Answer 1

Краш был по причине того, что я по ошибке скопировал содержимого LawPolicy в файл edit.blade.php . Поэтому Laravel пытался импортировать повторно класс с точно таким же именем и namespace. Странно, что я не нашёл это при помощи grep. Подсказка тем, кто нагуглит этот вопрос, будьте внимательнее и ищите класс-дублёр несколькими способами.

READ ALSO
Вывод date с учетом временной зоны

Вывод date с учетом временной зоны

Как сделать вывод функций date() и strtotime() в php с учетом временной зоныВременные зоны хранятся в списке городов и берутся из базы

155
Сортировка в массиве

Сортировка в массиве

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

188
Laravel error on hosting You don&#39;t have permission to access /storage/product_images/14/ZfUI13V1bdrsTtqFR4zdsGHgc3oSRbtOUiD3lwJG.jpeg on this server

Laravel error on hosting You don't have permission to access /storage/product_images/14/ZfUI13V1bdrsTtqFR4zdsGHgc3oSRbtOUiD3lwJG.jpeg on this server

Вручную создал symlink в папке public_html которая ссылается к папке storage/app/public , изменил все permissions на 777(знаю что небезопасно) ответ сервера все тотже,

162
Ajax jquery как принять массив json

Ajax jquery как принять массив json

Отсылаю на сервер некоторый массив с строками, сначала чтоб проверить пробую вернуть его назад:

173