我被以下数组阻止了。
{"id":17,"user_id":1,"mails":"[\"hello\",\"Bye\"]","created_at":"2019-11-14 11:02:11", "updated_at":"2019-11-14 11:02:11"}
我需要在 laravel 视图中显示一行邮件:你好和下一行邮件:再见。但是我无法以我尝试过的所有方式访问每个元素,它总是向我展示:
[“你好再见”]
如何访问这些属性中的每一个并在刀片视图中显示它们?
在将数据发送到视图的控制器中:
public function index()
{
$datos = Mails::orderBy('id', 'DESC')->get();
// dd($datos);
// dd(json_decode($datos));
return view('Admin/Cuentas', compact('datos', $datos));
}
在我看来,我有这个:
<table class="table table-striped table-bordered">
<thead>
<tr>
<th scope="col">N°</th>
<th scope="col">Usuario</th>
<th scope="col">Cuentas registradas</th>
<th scope="col">Fecha</th>
</tr>
</thead>
<tbody>
<?php $i=1; ?>
@foreach($datos as $usuario)
<tr>
<td>{{$i++}}</td>
<td>{{ $usuario->usuario_id }}</td>
<td>{{ $usuario['mails'] }}</td>
<td>{{ $usuario->created_at}}</td>
</tr>
@endforeach
</tbody>
</table>
我在视图中生成它们:
<form method="POST" action="/mailsEnviados">
@csrf
<div class="field_wrapper">
<div>
<input type="text" name="field_name[]" value=""/>
<a href="javascript:void(0);" class="add_button" title="Add field"><i class="fas fa-plus-circle"></i></a>
</div>
</div>
<button type="submit" class="btn btn-indigo">Enviar</button>
</form>
我保留它们:
$field_values_array = $_REQUEST['field_name'];
foreach($field_values_array as $value){
$mails = new Mails();
$mails->usuario_id = 1;
$mails->mails = json_encode($_REQUEST['field_name']);
$mails->save();
return 0;
}
你能帮我一把吗?非常感谢!
从您显示的内容来看,在“邮件”属性中,您没有数组,而是一个字符串:
因此,要将其传递给数组,您可以使用json_decode:
然后用 foreach 循环遍历它:
或使用内爆:
有了这两个,该数组的所有元素都将打印在同一行中。但是现在我重新阅读了这个问题,为每个元素打印一行,它会是这样的:
另一种不需要 json_decode 的方法是将该属性转换为模型中的数组:
https://laravel.com/docs/6.x/eloquent-mutators#array-and-json-casting