在视图Laravel中显示数据库数组的结果

时间:2018-11-12 12:08:24

标签: php arrays database laravel

我无法从数据库中的数组在“视图”中显示数据,我尝试了多种方法都无济于事。我需要在数据库(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

1 个答案:

答案 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;
}