在PHP(Laravel)中访问数组中的嵌套对象
我在如何访问嵌套对象上苦苦挣扎了很长一段时间在PHP(Laravel)中访问数组中的嵌套对象,php,laravel,object,nested,Php,Laravel,Object,Nested,我在如何访问嵌套对象上苦苦挣扎了很长一段时间 $dt = Carbon::parse($year.'-'.$month.'-1'); $godziny = array(); $gs = $lekarz->od; $gz = $lekarz->do; $ile = $gz-$gs; for($j=0; $j<4*$ile; $j++){ if($j%4==0){ $wm = "00";
$dt = Carbon::parse($year.'-'.$month.'-1');
$godziny = array();
$gs = $lekarz->od;
$gz = $lekarz->do;
$ile = $gz-$gs;
for($j=0; $j<4*$ile; $j++){
if($j%4==0){
$wm = "00";
}
else{
$wm = ($j%4)*15;
}
if($gs+floor(($j/4)) < 10){
$dz="0".$dz = $gs+floor(($j/4));
} else{
$dz = $gs+floor(($j/4));
}
$godziny[$j]['godzina'] = $dz;
$godziny[$j]['minuty'] = $wm;
if(!empty(Kolejka::where('data', 'LIKE', $year.'-'.$month.'-'.$day.' '.$dz.':'.$wm.'%')->get())){
$godziny[$j]['odbyta'] = Kolejka::where('data', 'LIKE', $year.'-'.$month.'-'.$day.' '.$dz.':'.$wm.'%')->get();
dd(get_object_vars($godziny[$j]['odbyta']));
// $godziny[$j]['pacjent'] = Pacjent::where('id', '=', $godziny[$j]['odbyta']->{0}->pacjent_id);
} else {
$godziny[$j]['odbyta'] = '';
}
}
这是生成具有模式的数据的代码:
$j的最大编号为36
$godziny[0]['godzina'] = $dz //That's for setting hour to array
$godziny[0]['godzina'] = $wm; //That's for assigning minutes
$godziny[0]['odbyta'] <- that's of value of object that i listed above
$godziny[0]['godzina']=$dz//用于将小时设置为数组
$godziny[0]['godzina']=$wm//那是用来分配时间的
$godziny[0]['odbyta']您不能使用Model->where…first()吗?然后将其作为对象访问:
$godziny[$j]['odbyta'] = Kolejka::where('data', 'LIKE', $year.'-'.$month.'-'.$day.' '.$dz.':'.$wm.'%')->first();
$godziny[$j]['pacjent'] = Pacjent::where('id', '=', $godziny[$j]['odbyta']->pacjent_id);
你不能只使用Model->where…first()吗?然后将其作为对象访问:
$godziny[$j]['odbyta'] = Kolejka::where('data', 'LIKE', $year.'-'.$month.'-'.$day.' '.$dz.':'.$wm.'%')->first();
$godziny[$j]['pacjent'] = Pacjent::where('id', '=', $godziny[$j]['odbyta']->pacjent_id);
我们只需要多一点信息,您发布的数据是您对其进行了json_编码还是本机编码?默认情况下,Laravel将所有内容都编码为json。你具体需要什么数据?这就是为什么它不起作用的原因,你需要json\u decode()
当你存储或阅读它时,你需要它。我误解了它的工作原理。它不是json。一切正常。我可以显示这个对象,但我无法访问它的任何数据:xHard来确定问题是您没有提供足够的代码。如何设置$j
?看起来像某种迭代器变量。我们只需要多一点信息,您发布的数据是您对其进行了json_编码,还是本机是这样的?默认情况下,Laravel将所有内容都编码为json。你具体需要什么数据?这就是为什么它不起作用的原因,你需要json\u decode()
当你存储或阅读它时,你需要它。我误解了它的工作原理。它不是json。一切正常。我可以显示这个对象,但我无法访问它的任何数据:xHard来确定问题是您没有提供足够的代码。如何设置$j
?看起来像某种迭代器变量。我需要从以下位置访问“属性:Kolejka{235▼ #连接:null#table:null#primaryKey:“id”#keyType:“int”+递增:true#带:[]#每页:15+存在:true+wasRecentlyCreated:false#属性:数组:7[▼ “id”=>“1”pacjent_id”=>“13”lekarz_id”=>“1”data“=>“2017-04-05 09:00:00”odbyta“=>“0”创建于“=>“2017-04-05 16:14:42”更新于“=>”2017-04-05 16:14:42”]。\35;原始:数组:7[▶] #casts:[]#dates:[]#dateFormat:null#appends:[]…
当您执行$godziny[$j]['odbyta']->pacjent_id时,模型将通过神奇的方法访问“attributes”参数,您是否尝试复制并粘贴我在回答中提供的代码?它不起作用?我使用了pulk函数来完成此任务我需要访问“attributes”由此:Kolejka{#235▼ #连接:null#table:null#primaryKey:“id”#keyType:“int”+递增:true#带:[]#每页:15+存在:true+wasRecentlyCreated:false#属性:数组:7[▼ “id”=>“1”pacjent_id”=>“13”lekarz_id”=>“1”data“=>“2017-04-05 09:00:00”odbyta“=>“0”创建于“=>“2017-04-05 16:14:42”更新于“=>”2017-04-05 16:14:42”]。\35;原始:数组:7[▶] #casts:[]#dates:[]#dateFormat:null#appends:[]…
当您执行$godziny[$j]['odbyta']->pacjent_id时,模型将通过神奇的方法访问“attributes”参数,您是否尝试复制并粘贴我在回答中提供的代码?它不起作用?我使用了Pull函数来完成此任务