L02 Web 開發實戰筆記(重點知識點)

weiqier發表於2019-10-08
  1. Laravel 專案中使用 Bootstrap 前端框架

    $ composer require laravel/ui --dev
  2. app()->getLocale() 獲取的是 config/app.php 中的 locale 選項

  3. npm的依賴可以用yarn安裝

    $ npm config set registry=https://registry.npm.taobao.org
    $ yarn config set registry https://registry.npm.taobao.org
  4. mix和asset的區別

    mix()        \\動態載入 
    asset ()     \\靜態載入
  5. webpack.mix.js 增加 .version(),解決瀏覽器快取問題

    const mix = require('laravel-mix');
    mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css').version();

    webpack.mix.js 檔案只在 npm run watch-poll 指令執行時引入,之後指令後臺執行不再重新引入。如果你後臺執行 watch-poll 命令的話,需關閉 watch-poll服務(Ctrl + Z),再次啟動( npm run watch-poll )即可生效。

7.一個新專案git

配置全域性資訊

$ git config --global user.name "Your Name"
$ git config --global user.email your@example.com

設定 Git 推送分支時相關配置

git config --global push.default simple

初始化

$ git init
$ git add -A
$ git commit -m "初始化"

接下來將 SSH Key 新增到 ssh-agent 中

cat ~/.ssh/id_rsa.pub
  1. config/app.php配置檔案修改
    'locale' => 'zh-CN',       //注意不是下劃線
    'timezone'  =>  'Asia/Shanghai',   //不過我喜歡用PRC,懶,少打字

9.驗證碼的安裝

composer require "mews/captcha:~3.0"

執行以下命令生成配置檔案 config/captcha.php:

php artisan vendor:publish --provider='Mews\Captcha\CaptchaServiceProvider' 

配置檔案config/captcha.php 設計大小,位數等

前臺呼叫使用

<div class="form-group row">
              <label for="captcha" class="col-md-4 col-form-label text-md-right">驗證碼</label>

              <div class="col-md-6">
                <input id="captcha" class="form-control{{ $errors->has('captcha') ? ' is-invalid' : '' }}" name="captcha" required>

                <img class="thumbnail captcha mt-3 mb-2" src="{{ captcha_src('flat') }}" onclick="this.src='/captcha/flat?'+Math.random()" title="點選圖片重新獲取驗證碼">

                @if ($errors->has('captcha'))
                  <span class="invalid-feedback" role="alert">
                    <strong>{{ $errors->first('captcha') }}</strong>
                  </span>
                @endif
              </div>
            </div>

驗證規則 captcha的部分 修改目錄:app/Http/Controllers/Auth/RegisterController.php

protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:6', 'confirmed'],
            'captcha' => ['required', 'captcha'],
        ], [
            'captcha.required' => '驗證碼不能為空',
            'captcha.captcha' => '請輸入正確的驗證碼',
        ]);
    }

10.在 Laravel 中,我們可直接通過 請求物件(Request) 來獲取使用者上傳的檔案,如以下兩種方法

// 第一種方法
$file = $request->file('avatar');

// 第二種方法,可讀性更高
$file = $request->avatar;
  1. 前置包 經常用到的兩個 laravel/ui 使用 laravelcollective/html
//laravel  登入註冊
composer require laravel/ui --dev
artisan ui:auth
//form & html
composer require laravelcollective/html
//圖片
composer require intervention/image
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"    
  1. form表單的兩種形式
{!! Form::model($user, ['route'=>['users.update',$user->id],'method'=>'POST','files'=>true]) !!}
{!! Form::close() !!}

form會自動加上csrf_token()

 <form action="{{ route('users.update', $user->id) }}" method="POST" accept-charset="UTF-8"
                    enctype="multipart/form-data">
                    <input type="hidden" name="_method" value="PUT">
                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

13.$topic->fill($request->all()); fill 方法會將傳參的鍵值陣列填充到模型的屬性中

$topic->fill($request->all())
本作品採用《CC 協議》,轉載必須註明作者和本文連結

Practice makes perfect !

相關文章