2016-10-07 18 views
0

私はユーザプロファイルフォームを作成しようとしています。データベーステーブルには、自動的にロードできるかどうかを確認しようとしています。laravel&Bladeテーブルからカラム名を動的にロード

私はそれを働かせています。しかし、現時点では、列の名前ではなく、数値のリスト(私が想定しているテーブルの列ID)を出力します。

私には何が欠けていますか?

これは、ブレードファイルです:

@extends('layout') 


@section('content') 
    <h1>User Profile Data</h1> 

     @foreach ($columns as $column => $name) 
      {{ $column }} 

     @endforeach 

      @foreach ($profile as $person) 
       @foreach ($person as $name) 
        {{ $name }}<br> 
       @endforeach 
      @endforeach 

@stop 

これはコントローラです:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use DB; 
use App\Http\Requests; 

class UserEntryController extends Controller 
{ 
    public function index(){ 
     $columns = DB::getSchemaBuilder()->getColumnListing('users'); 
     $profile = DB::table('users')->where('ID', '682')->get(); 
     return view('UserEntry', compact('profile', 'columns')); 
    } 
} 
+0

はこれが機能する ' –

答えて

1

私は一種のそれが働いています。しかし現時点では、 列の名前ではなく、 の番号のリスト(私が想定しているテーブルの列ID)を表示します。

いいえ、数字は$columnsのキーではなく、「テーブルの列ID」を見ていません。コントローラーの列(id)の値ではなく、列名だけを取り出したことを明確に見てください。

ビュー内で値の代わりにキー(この場合は列名)を印刷するのは$columnsです。印刷$nameのみ

@foreach ($columns as $column => $name) 
    {{ $name }} 
@endforeach 
+0

代わりに、' {{$のcollumn}}の '{{$名}}'印刷してみてください。ありがとうございました。 :) – Mugluck

関連する問題