gpt4 book ai didi

php - 通过字符串加载 Laravel Eloquent 属性

转载 作者:行者123 更新时间:2023-12-04 15:44:04 26 4
gpt4 key购买 nike

我正在我的数据库中存储一些字符串,我希望能够使用它们获取模型属性。

基本上,我可以这样调用用户预订

$user->bookings->date

在我的 Controller 中它可以工作,我在我的数据库中存储了一个字符串,就像这样

'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

这可能吗?

最佳答案

我找到了一个涉及从静态字符串链接对象访问的解决方案:

$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"

因此,虽然它需要一些额外的逻辑,但可以从数据库字符串设置对象访问。

关于php - 通过字符串加载 Laravel Eloquent 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com