首页 > 解决方案 > 在视图 laravel 中显示来自 DB 数组的结果

问题描述

我无法在我的数据库中的数组的视图中显示数据,我尝试了多种方法都无济于事。我需要从数据库中的两个数组的视图中显示所有结果(Name and Url)- 我尝试了循环,尽管我似乎无法正确定位数据。我也不知道我的代码哪里出错了。我是 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

标签: phparraysdatabaselaravel

解决方案


由于您的问题被标记为 laravel,您可以将集合与 combine https://laravel.com/docs/5.7/collections#method-combine结合使用

collect($name)->combine($url);

将导致

linkOne => urlOne,
linkTwo => urlTwo,

如果您愿意,您可以更进一步(我认为没有必要)以准确实现您目前的观点。

$tags = collect($name)->combine($url)->map(function ($item, $key) {
    $tag = new \stdClass();
    $tag->{'name'} = $key;
    $tag->{'url'} = $item;
    return $tag;
}

推荐阅读