我正在接管之前編寫的 Laravel 應用程序,并嘗試了解各種事物如何組合在一起。在這樣做的過程中,我發現了以下代碼:class MyController extends Controller{ public function index(Request $request) { if ($request->popular) { //.... } //... }我不太確定 if 語句試圖訪問什么。當我將鼠標懸停在該$request→popular部分上時,它表示popular正在通過魔術方法訪問該屬性。我也無法在代碼中的其他任何地方找到任何名為“popular”的屬性/方法。有誰知道這可能想做什么?我知道該屬性popular不是對象的內部屬性Request,因為在代碼的后面,程序員還使用這種魔術方法格式訪問各種其他屬性。它是某種訪問 URI 的簡寫方式嗎?(例如,也許/api/popular)
1 回答

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
是Input Via Dynamic Properties
。它還開著Illuminate\Http\Request
。
例如,如果您的應用程序表單之一包含一個name
字段,您可以像這樣訪問該字段的值:
$name?=?$request->name;
和這個是一樣的:
$name?=?$request->input('name');
當使用動態屬性時,Laravel 將首先在請求負載中查找參數的值。如果不存在,Laravel 將在路由參數中搜索該字段(例如:查詢字符串)。
在你的例子中,它可能是這樣的:
/api/posts?popular=1
如果您想知道這是如何做到的,請使用神奇的 PHP__get()
方法。
- 1 回答
- 0 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消