Goros6 / purchases.dev

Контроль жизненного цикла заявки на закупку внутри организации
0 stars 2 forks source link

Работа со справочниками #1

Open Goros6 opened 9 years ago

Goros6 commented 9 years ago

Справочники нужно: показывать, любому пользователю редактировать, администратору Справочники: "Организации" (enterprises) "Штатное расписание" (units) "Пользователи" (users) "Согласования" (agreements) "Статусы заявок" (purchaseStatuses)

mikanoz commented 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 автоматически генерирует доступ к ресурсу "статус заявки".

Реализуем ресурс создания нового статуса:

image

PSR-4

Чтобы класс PurchaseStatusController был доступен для автозагрузки, необходимо добавить наш неймспейс в композер в соответствии со стандартом PSR-4.

image

После добавления выполняем команду composer dump-autoload, чтобы наш неймспейс зарегистрировался в автозагрузке.

Проверим как это работает:

В PhpStorm есть модуль для работы с REST, есть и другие варианты. Но я привык к расширению к браузеру хром (Postman). Можете посмотреть и выбрать любой удобный для себя REST-клиент. Итак, отправляем запрос, в точности с правилами роутинга (POST-запрос на URL v1/api/purchaseStatus):

image

Это значит, что мы отправляем запрос методом POST на URL http://purchases.dev:8000/v1/api/purchaseStatus в формате JSON. А сервер видит (и выводит) то, что мы отправили.

Создание модели и так далее

Далее необходимо

Вопросы задавать в skype