我在我的數據庫中存儲了一些字符串,我希望能夠使用它們獲取模型屬性?;旧希铱梢源螂娫捊o這樣的用戶預訂$user->bookings->date在我的控制器中,它可以工作,我正在像這樣在我的數據庫中存儲一個字符串'user->bookings->date'如何使用數據庫中的這個字符串來獲取屬性?我希望能夠做類似的事情$user = User::findOrFail(1);$string = 'user->bookings->date'; //This is fetched from the db normally$booking_date = ${$string}; //Instead of writing $user->bookings->date這可能嗎?
1 回答

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
我找到了一個涉及從靜態字符串鏈接對象訪問的解決方案:
$user = User::findOrFail(1);
$string = "user->bookings->date";
$params = explode("->", $string);
$var = null;
foreach($params AS $param){
if($var){
$var = $var->{$param};
} else {
$var = ${$param};
}
}
dd($var);
在 的第一次迭代中$params,設置$var為${$param}( $user)的值。然后,在下一次迭代中,設置$var為$var->{$param}( $user->bookings, $user->bookings->date)的值。然后,最后,回顯(或dd()) 的值$var。在我的測試中,這導致
"2019-06-18 12:06:00"
因此,雖然它需要一些額外的邏輯,但可以從數據庫字符串設置對象訪問。
- 1 回答
- 0 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消