【发布时间】:2019-06-01 09:32:52
【问题描述】:
Laravel 版本:5.7.14 航海者版本:1.1.1 PHP版本:7.2
“试图获取非对象的属性‘类型’”**
1.我正在尝试编辑管理员用户
2.当点击用户导航选项时,在 voyager 管理面板中会出现同样的问题。我遇到了这个问题。
C:\xampp\htdocs\mfscl_website\vendor\tcg\voyager\src\Http\Controllers\Traits\BreadRelationshipParser.php
$forget_keys = [];
foreach ($dataType->{$bread_type.'Rows'} as $key => $row) {
if ($row->type == 'relationship') {
if ($row->details->type == 'belongsTo') {
$relationshipField = @$row->details->column;
$keyInCollection = key($dataType->{$bread_type.'Rows'}->where('field', '=', $relationshipField)->toArray());
array_push($forget_keys, $keyInCollection);
}
}
}
“试图获取非对象的属性‘类型’”
如果我尝试编辑用户面包得到这个错误:
ErrorException (E_ERROR) 试图获取非对象的属性“类型” (看法: C:\xampp\htdocs\mfscl_website\vendor\tcg\voyager\resources\views\tools\bread\relationship-partial.blade.php) (看法: C:\xampp\htdocs\mfscl_website\vendor\tcg\voyager\resources\views\tools\bread\relationship-partial.blade.php) 以前的异常尝试获取非对象的属性“类型”(查看: C:\xampp\htdocs\mfscl_website\vendor\tcg\voyager\resources\views\tools\bread\relationship-partial.blade.php) (0) 试图获取非对象的属性“类型”(0)
<div class="relationshipField">
<div class="relationship_details_content margin_top belongsTo <?php if($relationshipDetails->type == 'belongsTo'): ?><?php echo e('flexed'); ?><?php endif; ?>">
<label><?php echo e(__('voyager::database.relationship.which_column_from')); ?> <span><?php echo e(str_singular(ucfirst($table))); ?></span> <?php echo e(__('voyager::database.relationship.is_used_to_reference')); ?> <span class="label_table_name"></span>?</label>
<select name="relationship_column_belongs_to_<?php echo e($relationship['field']); ?>" class="new_relationship_field select2">
【问题讨论】:
-
请检查 row 是否为对象。也许做一个动态转储dd()。也许 row 是一个数组,您需要将类型设置为 $row['type'];
-
这解决了我的问题 if ($row->type == 'relationship') { $options = json_decode($row->details); if ( $options->type == 'belongsTo' ) { $relationshipField = @$options->column; $keyInCollection = key($dataType->{$bread_type .'Rows'}->where('field', '=', $relationshipField)->toArray()); array_push($forget_keys, $keyInCollection); } }
-
优秀,干得好
-
如果您认为您找到的解决方案对其他用户有帮助,请随时self-answer您的问题。否则,您可以delete your post。