亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過字符串加載 Laravel eloquent 屬性

通過字符串加載 Laravel eloquent 屬性

PHP
慕村9548890 2021-08-28 10:07:13
我在我的數據庫中存儲了一些字符串,我希望能夠使用它們獲取模型屬性?;旧希铱梢源螂娫捊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"

因此,雖然它需要一些額外的邏輯,但可以從數據庫字符串設置對象訪問。


查看完整回答
反對 回復 2021-08-28
  • 1 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號