get() 和 first() 的區別
get() 獲取的是一組 Model 資料,而 first()得到的是一個 Model 資料。
Laravel 裡的每一個 Model 資料,或者說每一條資料庫記錄取出來的時候都是用PHP的 stdClass 來封裝的,一條 Model 資料就是一個 stdClass(stdClass是一個沒有屬性和方法的空類,一般用來建立一個匿名物件或者將非物件型別轉換成物件,這樣我們就可以方便的新增和刪除屬性)。
- get() 獲取到的是一個 collection 物件,其中的 items 屬性是一個陣列,每個陣列元素就是一個 stdClass 物件。
- first() 獲取到的單個 stdClass 物件,因此我們可以直接在這個物件上面直接獲取各種屬性或者呼叫在 Model 裡定義的關係 (eloquent relationship)。
@each() 的用法
@each() 用來在 blade 模板中迴圈輸出內容,只需一行程式碼,樣式十分簡潔。
- 使用 @foreach()
@if(count($projects) > 0) @foreach($projects as $project) @include('projects._name') @endforeach @else @include('projects._empty') @endif
- 使用 @each()
@each('projects._name', $projects, 'project', 'projects._empty')
四個引數分別為:
- 迴圈的單個檢視。
- 需要迴圈的資料。
- 迴圈的單條資料在檢視中的變數名。
- 迴圈的資料為空時渲染的檢視。(可選項)
新增外來鍵約束
意為在該表中新增一個$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
user_id
欄位與user
表中的id
欄位關聯,並且在刪除時產生級聯,即user
表中刪除id
為n的記錄,當前表中所有user_id
為n的記錄也會被一併聯動刪除。
執行遷移後:
本作品採用《CC 協議》,轉載必須註明作者和本文連結