Open Goros6 opened 9 years ago
Похоже справочники это самая простая часть. Поэтому предлагаю начать отсюда. В первую очередь, не будем думать о правах доступа (они потом цепляются оч. просто). Сначала реализуем ресурсы для REST.
Общее описание здесь: http://laravel.com/docs/4.2/controllers Попытаюсь дать короткий путь. Например, справочник статусов заявок. Проходя по этому пути, обязательно разобраться для себя и понять, что все это значит. Почитать официальную документацию. Разобраться в группах, роутах, неймспейсах и автозагрузке. Иначе потом будет трудно.
Добавляем новый route в routes.php
Route::group(array('prefix' => 'v1/api'), function() {
Route::resource('purchaseStatus', 'Goros6\\Purchases\\Api\\PurchaseStatusController');
});
Проверяем результат:
Выполняем команду
vagrant@homestead:~/purchases.dev$ php artisan routes
+--------+------------------------------------------------------+-------------------------------+-------------------------------------------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+------------------------------------------------------+-------------------------------+-------------------------------------------------------------------+----------------+---------------+
| | GET|HEAD / | | Closure | | |
| | GET|HEAD v1/api/purchaseStatus | v1.api.purchaseStatus.index | Goros6\Purchases\Controllers\Api\PurchaseStatusController@index | | |
| | GET|HEAD v1/api/purchaseStatus/create | v1.api.purchaseStatus.create | Goros6\Purchases\Controllers\Api\PurchaseStatusController@create | | |
| | POST v1/api/purchaseStatus | v1.api.purchaseStatus.store | Goros6\Purchases\Controllers\Api\PurchaseStatusController@store | | |
| | GET|HEAD v1/api/purchaseStatus/{purchaseStatus} | v1.api.purchaseStatus.show | Goros6\Purchases\Controllers\Api\PurchaseStatusController@show | | |
| | GET|HEAD v1/api/purchaseStatus/{purchaseStatus}/edit | v1.api.purchaseStatus.edit | Goros6\Purchases\Controllers\Api\PurchaseStatusController@edit | | |
| | PUT v1/api/purchaseStatus/{purchaseStatus} | v1.api.purchaseStatus.update | Goros6\Purchases\Controllers\Api\PurchaseStatusController@update | | |
| | PATCH v1/api/purchaseStatus/{purchaseStatus} | | Goros6\Purchases\Controllers\Api\PurchaseStatusController@update | | |
| | DELETE v1/api/purchaseStatus/{purchaseStatus} | v1.api.purchaseStatus.destroy | Goros6\Purchases\Controllers\Api\PurchaseStatusController@destroy | | |
+--------+------------------------------------------------------+-------------------------------+-------------------------------------------------------------------+----------------+---------------+
Видим, что Laravel автоматически генерирует доступ к ресурсу "статус заявки".
Реализуем ресурс создания нового статуса:
PSR-4
Чтобы класс PurchaseStatusController был доступен для автозагрузки, необходимо добавить наш неймспейс в композер в соответствии со стандартом PSR-4.
После добавления выполняем команду composer dump-autoload, чтобы наш неймспейс зарегистрировался в автозагрузке.
Проверим как это работает:
В PhpStorm есть модуль для работы с REST, есть и другие варианты. Но я привык к расширению к браузеру хром (Postman). Можете посмотреть и выбрать любой удобный для себя REST-клиент. Итак, отправляем запрос, в точности с правилами роутинга (POST-запрос на URL v1/api/purchaseStatus):
Это значит, что мы отправляем запрос методом POST на URL http://purchases.dev:8000/v1/api/purchaseStatus в формате JSON. А сервер видит (и выводит) то, что мы отправили.
Создание модели и так далее
Далее необходимо
Вопросы задавать в skype
Справочники нужно: показывать, любому пользователю редактировать, администратору Справочники: "Организации" (enterprises) "Штатное расписание" (units) "Пользователи" (users) "Согласования" (agreements) "Статусы заявок" (purchaseStatuses)