воскресенье, 19 февраля 2017 г.

Админка

1-ориентир на это
   http://sleepingowladmin.ru/docs
   https://github.com/LaravelRUS/SleepingOwlAdmin
 версия лавр 5.2
demo версия
https://github.com/SleepingOwlAdmin/demo
***************************************************
2-Авторизация
        1)берем стандартную то есть
                php artisan make:auth
      потом табличку в базу
         php artisan migrate
    2)в табличку user добавляем поле 
       admin 
      `admin` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    3)далее
     создаем свой mild
     https://tutorialedge.net/creating-an-admin-area-with-laravel-5
     https://laracasts.com/discuss/channels/laravel/user-admin-authentication
     
     то есть 
      в модели добавляем isAdmin()(проверяем или поле admin равно 1) 
      в своем Middleware пишем приблизительно так
              if(Auth::check() && Auth::user()->isAdmin()=="1")
                { return $next($request); } 
               return redirect()->guest('/');       

  
       то есть проверка идет на юзера в которого в поле admin выставлено 1

*************************************************************
3-как создавать поля в админке↛😞  бля знать бы как
    1)
       создать нужную модель согласно классике    
       php artisan make:model Subject --migration
       потом база данных
       php artisan migrate
    2)
      потом отсюда читает инструкцию
      http://sleepingowladmin.ru/docs/model_configuration_section
      то есть создаваемом отсюда файлом управлеяем всем

***********************************************************
4-многие ко многим реализация
   1) первая табличка  'kompans'
      вторая                    'spets'
      создаем третью
      Schema::create('kompan_spet', function (Blueprint $table) {
            $table->integer('kompan_id')->unsigned();
            $table->integer('spet_id')->unsigned();

            //$table->foreign('permission_id')
            //      ->references('id')
            //      ->on('permissions')
            //      ->onDelete('cascade');
            //
            //$table->foreign('role_id')
            //      ->references('id')
            //      ->on('roles')
            //      ->onDelete('cascade');

            $table->primary(['kompan_id', 'spet_id']);
        });
 
   2)в модели
     kompan

public function setSpetsAttribute($spets){    
      $this->spets()->detach();    
      if(!$spets) return;   
      if(!$this->exists)$this->save();    
     $this->spets()->attach($spets);
}
public function spets(){   
    return $this->belongsToMany(Spet::class);
}


 



     для второй модели
    public function kompaniis()
     {    
       return $this->belongsToMany(Kompan::class);
}


 3)


******************************************************
5 важный момент - размещение на хостинге
  если на хостинге корень www должен быть public_html
  вот решение  https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5

*****************************************
для построения дерева используем
https://github.com/etrepat/baum

*******************************************
выборка
https://laravel.ru/docs/v5/queries
Метод distinct() позволяет вернуть только отличающиеся результаты:
$users DB::table('users')->distinct()->get();

*****************************
отношение один ко многим

вторая табличка
$table->integer('typ_id')->unsigned()->nullable();$table->foreign('typ_id')->references('id')->on('typs');

http://www.easylaravelbook.com/blog/2015/02/25/creating-a-hasmany-relation-in-laravel-5/

Комментариев нет:

Отправить комментарий