程式CODE

2019年9月3日 星期二

laravel6安裝

一、使用 composer 創建專案

composer create-project --prefer-dist laravel/laravel 專案名 "6.*"

裝完, .env 檔也建好了, key 也建好了。
如果沒有 key ,自行下指定  php artisan key:generate


二、修改設定檔

2.1 設定
修改 config/app.php
...
'timezone' => 'Asia/Taipei',
'locale' => 'zh-TW',
'fallback_locale' => 'zh-TW',
...

2.2 語系
https://github.com/caouecs/Laravel-lang
下載 zh-TW 至 resourses/lag/


三、變更目錄權限

sudo chmod 777 -R storage/ bootstrap/cache/
或是指定給 apache


四、apache 設定

<VirtualHost *:80>
       ServerName 專案網址
       DocumentRoot /var/www/html/專案名/public
       <Directory "/var/www/html/專案名/public/">
               Options -Indexes
               AllowOverride All
               Require all granted
       </Directory>
</VirtualHost>


五、連線成功畫面


六、資料庫設定

6.1 建立一個資料庫,如 testDB

6.2 修改 .env 檔
...
DB_DATABASE=testDB
DB_USERNAME=帳號
DB_PASSWORD=密碼
...

七、使用者認證
7.1 增加路由及視圖
composer require laravel/ui "1.*"
php artisan ui vue --auth
上方多了 LOGIN 及 REGISTER


7.2 裝好之後,執行
npm install && npm run dev


7.3 修改 route/web.php
少了一個路由
Route::get('home', 'HomeController@index');

八、更改為使用 username 登入
8.1 改 database/migrations/2014_10_12_000000_create_users_table.php
...
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->nullable();
$table->timestamp('email_verified_at')->nullable();
$table->string('username')->unique();
$table->string('password');
$table->tinyInteger('admin')->nullable();//管理者
$table->rememberToken();
$table->timestamps();
...

8.2 更改 app/User.php 增加兩位欄位
...
    protected $fillable = [
        'name', 'email', 'username', 'password', 'admin',
    ];
...


8.2 改 app/Htpp/Controllers/Auth/LoginController
...
    public function username()
    {
        return 'username';
    }
...

8.3 改 resources/views/auth/login.blade.php
8.4 改 resources/views/auth/register.blade.php

九、更改有 admin 的功能
增加一個 middleware
php artisan make:middleware AdminMiddleware

***
    public function handle($request, Closure $next,$guard = null)
    {
        if (Auth::guard($guard)->check() && Auth::user()->admin == 1) {
            return $next($request);
        }else{
            return redirect()->back();
        }
    }
***

沒有留言:

張貼留言