首页 > 解决方案 > 读取数组的第一条记录而不是 Laravel 中的第一个字符

问题描述

我正在使用 Laravel 8 。我在我的数据库中保存了一些数组,当我尝试读取这些数组时,我只得到它的一个字符。

例如数据库中的数组是["one", "two"],当我写

@foreach ($xs as $x)
    <li>
           {{ $x->y[0] }}
    </li>
@endforeach

它只会显示 '[' 而不是 'one'

在我的迁移文件中,我这样做了:

$table->json('y');

and in my model i did this :
    protected $casts = [
        'y' => 'json',
    ];

在模型中我也尝试过这个:

 protected $casts = [
        'y' => 'array',
    ];

在我的控制器中,我做了类似的事情来显示数据:

 public function showData(){
        $x = DB::select('select * from x');

        return view('home',['x'=>$x]);
    }

标签: phparraysjsondatabaselaravel

解决方案


我已经解决了这个问题。问题是我在表上调用记录的方式。我错过了添加

use App\MyModel;

到我的控制器。在我的控制器中我曾经写过

$x = DB::(select * from mytable);

我将其更改为:

$x= MyModel::all();

推荐阅读