我无法从数据库中的数组在“视图”中显示数据,我尝试了多种方法都无济于事。我需要在数据库(Name and Url)
的两个数组中的View中显示所有结果-尽管似乎无法正确定位数据,但我已经尝试了for循环。我也不知道我的代码在哪里出错。我是Laravel的新手。
任何帮助将不胜感激。
数据库实例:
local.INFO: array (
'_token' => 'kwsRPOc9YH4pjvmAVsibJULiMUItzZu2BEWimJy6',
'name' =>
array (
0 => 'linkOne',
1 => 'linkTwo',
),
'url' =>
array (
0 => 'urlOne',
1 => 'urlTwo',
),
)
控制器:
public function addMorePost(TagList $tagslist, Request $request)
{
Log::info($request);
foreach($request as $key => $value) {
TagList::create([
'name[]'=>[$value],
'url[]'=>[$value]
]);
}
$tagslist = \App\Taglist::all();
return view('addMore', ['tagslist' => $tagslist]);
}
查看:
@foreach ($tagslist as $tag)
<div>
<p class="name">{{ $tag->name }}</p>
<p class="url">{{ $tag->url }}</p>
</div>
@endforeach
答案 0 :(得分:1)
由于您的问题被标记为laravel,因此您可以使用带有Combine的集合 https://laravel.com/docs/5.7/collections#method-combine
collect($name)->combine($url);
将导致
linkOne => urlOne,
linkTwo => urlTwo,
如果您愿意,可以再走1步(我认为没有必要),以实现您当前所认为的确切目标。
$tags = collect($name)->combine($url)->map(function ($item, $key) {
$tag = new \stdClass();
$tag->{'name'} = $key;
$tag->{'url'} = $item;
return $tag;
}