Laravel 一日速成班 學習筆記心得

Laravel 是什麼?

Laravel 是一套 PHP 的 Framework 簡單的 Router 系統 MVC 的架構,並且使用 Composer 管理 PHP 套件,使用起來非常的簡單。

Blade Templates

前台使用 Blade Templates 作為輸出 Blade 寫起來就與一般的 HTML 沒兩樣,在透過插入 short code 達到動態輸出的效果。

環境使用 Homestead

Homestead 官方的 Vargant 包裡面已經安裝好作業環境只需將環境 run 起來即可。
可能遇到的地雷

最新可能會有問題5.1.16?

Vargant 版本為 5.1.14

Vagrant

  1. 產生ssh key
  2. 資料夾mount進vargant
  3. clone homestead setting
  4. init
  5. yaml mapping
  6. vagrant up
    > 如果要reload
    vagrant reload --provision

Laravel 的資料夾分層結構

public

最後輸出首頁 js css 以及存放 index.php 的地方,除非你知道你在幹什麼不然不要碰這個地方,而將網站的跟目錄也要指到這裡

config

有關於 Laravel 的設定都會存放在這個資料夾內

storage

存放快取的地方,需要注意的是這裡的權限必須是要你的 web server 是可以讀寫的狀態同時也要注意bootstrap/cache的資料夾權限也是要可讀寫,否則你的 Laravel 是跑不起來的。

routes

routes 存放的地方,只要是開路徑幾乎都在這裡

app

定義 model 的位子,通常為一個 model 就是一個 PHP 檔 以及寫 controller 的地方

database

只要是與資料庫相關的都放這個地方,像是產生資料庫的 migrations 或是產生假資料的 seeds

resources

放 views 或是 Sass、Vue js 的地方會透過編譯最後進到 public 內

  1. artisan 是 laravel的command line tool for project 可以擴充
  2. .env設定環境變數的地方 所以gitignore掉

Migrat

使用 artisan migrat 去產生資料庫結構在用artisan migrate:rollback驗證資料庫結構

  1. 建立migration 用code產生資料庫架構 naming: {action}_{table_name}_table
  2. create table
  3. artisan migrate 就可以去檢查DB
  4. artisan migrate:rollback 把資料庫復原

Route

  1. route名子對應
  2. 順序的對應
  3. 網址可以帶參數

* 必要參數

Route::get('/hello/{name}',function ($name){
return 'hello:'. $name;
});

  • 選擇參數
Route::get('/hello/{name?}',function ($name='我是阿傑'){
return 'hello:'. $name;
});

Controller

    1. 建立 Controller
      artisan make:controller TasksController

  1. Route 去叫 Controller
// {Controller的名子}@{function 名子}
Route::get('/', 'TasksController@index');

View

Laravel 使用blade引擎
1. yield 就是留空
@yield('content')
2. section 就是命名
“`=
@section('content')
//balabala
@endsection

<pre><code><br />3. 彌補HTML先天上的不足
</code></pre>

{{csrf_field()}}//防止DDOS
{{method_field('PATCH')}}//送PATCH
{{method_field("DELETE")}}//送DELETE

<pre><code><br />4. 絕對路徑
</code></pre>

// 對上 Route

<form class="form-horizontal" action="{{url('tasks')}}" method="POST">//code</form>

“`

Model

  1. 建立model
    artisan make:model Task
  2. 資料表與 Model 的命名