我想获取 Audit 模型的数据,该模型在其 old_values 和 new_values 列中是存储数组,但动态。当我在视图中执行shelljs.which
时,想要显示这些列时会出现以下错误:
ErrorException(E_ERROR)htmlspecialchars()期望参数1为字符串,给定数组(视图:H:\ DAF \ resources \ views \ audit \ index.blade.php)
我已经搜索了几个博客,他们说如何使用静态数组而不是动态数组来执行类似的操作。
审核模型为foreach
,称为Laravel's vendor
。
OwenIt\Auditing
控制器
class Audit extends Model implements \OwenIt\Auditing\Contracts\Audit
{
use \OwenIt\Auditing\Audit;
/**
* {@inheritdoc}
*/
protected $guarded = [];
/**
* {@inheritdoc}
*/
protected $casts = [
'old_values' => 'json',
'new_values' => 'json',
'auditable_id' => 'integer',
];
}
Vista
<?php
namespace App\Http\Controllers;
use OwenIt\Auditing\Models\Audit;
class EstaticasController extends Controller {
public function audit() {
$audit = Audit::orderBy( 'id', 'DESC' )->get();
return view( 'audit.index', compact( 'audit' ) );
}
}
表格图片
包含数据的数据库图像
答案 0 :(得分:0)
我认为这是问题所在
// ...
// <td>{{ $item->auditable_type }}</td>
<td>{{ $item->old_values }}</td>
<td>{{ $item->new_values }}</td>
// <td>{{ $item->url }}</td>
// ...
这里的问题是,为了在屏幕上打印它们,前端希望该值是字符串,但是您给它一个数组。这就是引发错误的原因:
ErrorException(E_ERROR)htmlspecialchars()期望参数1为字符串,给定数组(视图:H:\ DAF \ resources \ views \ audit \ index.blade.php)
要解决此问题,您只需要遍历数组即可打印出它的每个元素:
@foreach ($item->old_values as $value)
<p>{{ $value }}</p>
@endforeach