Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在访问集合时动态设置父表?_Php_Laravel_Laravel Livewire - Fatal编程技术网

Php 如何在访问集合时动态设置父表?

Php 如何在访问集合时动态设置父表?,php,laravel,laravel-livewire,Php,Laravel,Laravel Livewire,我正在尝试从不同的表中动态获取数据,这取决于哪个用户登录,如果允许他编辑所述表,我认为应该这样做: $colaboradores=Colaboradore::where('email','=',Auth::user()->email)->first(); $tables=DB::connection('mysql2')->select(“显示像'intervecoes\\\\\\%'这样的表”); foreach($tables作为$object){ $arrays[]=(数组)$object;

我正在尝试从不同的表中动态获取数据,这取决于哪个用户登录,如果允许他编辑所述表,我认为应该这样做:

$colaboradores=Colaboradore::where('email','=',Auth::user()->email)->first();
$tables=DB::connection('mysql2')->select(“显示像'intervecoes\\\\\\%'这样的表”);
foreach($tables作为$object){
$arrays[]=(数组)$object;
}
foreach($array作为$array){
$string=内爆(“”,$array);
$test=$colaboradores->Niveis->$string->id;
}
它在代码的最后一位输出一个错误
“试图获取非对象的属性“id”
我已经找了几个小时了,但找不到任何相关的东西。 顺便说一下,这些都在livewire组件中

提前谢谢

编辑:


由于
$colaboradores->Niveis->$string
返回一个集合,因此需要对其进行迭代以获得结果

$test = [];
foreach ($colaboradores->Niveis->$string as $obj) {
    $test[] = $obj->id;
}
然后您可以使用
dd($test)检查
$test
中的ID例如

如果
$obj
不是真实对象,这可能会导致问题,因此您可以使用以下工具进行检查:

if (!is_object($obj)) {
    //Do something - Not an object!
}

此错误表示此
$colaboradores->Niveis->$string
不是对象,因此它可能是数组/集合,甚至可能为空。你能
dd($colaboradores->Niveis)
dd($colaboradores->Niveis->$string)
并用结果更新问题?查看
dd($colaboradores->Niveis->$string)
可以检查它是否为空。因此,如果您尝试获取
$colaboradores->Niveis->$string->id
,则与尝试从空变量获取属性相同。尝试打印
dd($string)
并检查它是否是Niveis的属性,或者它是否触发了Niveis上的关系。可能没有,也许这就是问题所在。@Laerte你是对的,我收到的字符串有一个输入错误,当我做
dd($colaboradores->Niveis->$string)时,
现在它附带了一个集合。但是现在每当我真正尝试获取一个id时,
dd($colaboradores->Niveis->$string->id)
就会说
Property[id]在这个集合实例上不存在。