我正在嘗試進行搜索并回傳一個值。根據我如何嘗試獲得價值,我會得到不同的結果。
如果表具有以下值:
| ID | 姓名 |
|---|---|
| 1 | 專業我 |
| 2 | 專業二 |
| 3 | 專業三 |
| 4 | 專業四 |
| 5 | 老師我 |
| 6 | 老師二 |
而我設定$type = 4,我期望得到Professional IV。
CertificateRequest::find($type)->name;
回傳Professional VI這是我想要的。
然而,
CertificateRequest::find($type)->value("name"));
和
CertificateRequest::find($type)->first()->value("name");
兩者都回傳Professional I
我究竟做錯了什么?第一種方法的問題是如果$type = null,我得到Attempt to read property "name" on null。動態傳遞列名也變得更加困難。
uj5u.com熱心網友回復:
這段代碼應該做你想做的事:
CertificateRequest::where('id', $type)->value("name"));
不同之處在于find執行查詢,這意味著value似乎執行了沒有型別引數的第二個查詢。該where方法修改查詢而不執行它,允許該value方法執行查詢并回傳結果。
uj5u.com熱心網友回復:
利用
CertificateRequest::findOrFail($type)->name;
將回傳資料或 404,而不是 null。
uj5u.com熱心網友回復:
你可以試試
$data = CertificateRequest::where('id',$type)->get();
編輯
CertificateRequest::select($field)->where('id',$type);
也許這可以幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/492500.html
上一篇:更新資料庫不止一次php
