您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Laravel模型的get find first怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Laravel模型的get find first怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
首先創建數據庫表,我們不使用遷移,直接上SQL
。
CREATE TABLE `about`( `id` int(10) UNSIGNED NOT NULL, `title` varchar(500) COLLATE utf8_unicode_ci NOT NULL, `content` text COLLATE utf8_unicode_ci, )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
只有3列,一個是主鍵,一個是標題,一個是文本內容。注意數據庫字段,表,均聲明了utf-8
編碼。
然后創建模型 About
,指定表名,我們此處略去,直接看控制器的一個方法:
public function index() { $about = About::where('title', 'about-me')->get(); //id = 3 return view('about', compact('about')); }
SQL
查詢條件是根據標題返回所有的條目,然后將結果集通過 view
視圖進行渲染。
然后重點來了,視圖內這樣寫大家看會不會有問題!?
@section('title') {{$about->title}} @stop @section('content') {!! $about->content !!} @stop
如果不出意外,開啟 debug = true
訪問該頁面時,你大概率會得到下面的錯誤提示:
Property [title] does not exist on this collection instance. (View: E:\laragon\www\newsite\resources\views\about.blade.php)
大家思考一下,這個故障是如何發生的?下一節我們給出解答。
Laravel
模型的get()
方法返回一個集合(EloquentCollection
)。如果需要使用集合的屬性,你首先需要進行遍歷。像下面這樣在視圖文件內寫:
@foreach ($collection as $object) {{ $object->title }} @endforeach
EloquentCollection
內的每一個元素,都是一個 About Model
對象。所以可以使用 $object->title
獲取到title
屬性。
如果你的需求很簡單,就是要第一個元素的標題,簡寫如下:
{{ $collection[0]->title }}
如果你要獲取集合內的第一個元素,使用 first 方法:
{{ $collection->first() }}
我們知道了問題來自 get()
方法,那么,如果要獲取查詢數據集的第一條數據,應該用哪個呢?find()
或者first()
!
都會返回一個 About Model
對象,在視圖中就可以愉快地寫:
{{ $object->title }}
讀到這里,這篇“Laravel模型的get find first怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。