2016-10-10 73 views
0

好的,所以這是一個問題,我希望可以幫助其他新手,因爲我遇到了從刀片中的數組中抽取信息的錯誤,並且我不熟悉它語法來正確調試。如何使用Laravel 5.3刀片顯示數據(多維?)陣列

我明白如何陣列的數據發送到通常視圖,例如:

public function index() { 
    $variable = DB::table('tablename')->where('ID', '535'); 
    return view('viewname', compact('variable')); 
} 

這將發送附連到的535 ID到視圖的一切。然後,標題可以打印出來,像這樣:

@foreach ($variable as $foo) 
    {{ $foo->title }} 
@endforeach 

或者,如果你要打印的一切(我認爲這是正確的?):

@foreach ($variable as $foo) 
    @foreach ($foo as $name) 
    {{ $name }} 
    @endforeach 
@endforeach 

這個過程我有點明白了。

但是我卡住的地方是模型。

比方說,我設置一些路線:

Route::get('User', '[email protected]'); 
route::get('User/{id}', '[email protected]'); 

而且在控制器的一個,抓住展會路線:

<?php 

namespace App\Http\Controllers; 
use App\UserEdit; 
use Illuminate\Http\Request; 
use App\Http\Requests; 

class UserEntryController extends Controller 
{ 

    public function show(UserEdit $id) { 

     return $id; 
    } 

} 

這將返回所有的連接模式:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class UserEdit extends Model { 




    protected $table = 'users'; 


    protected $fillable = ['ID', various', 'pieces', 'of', 'table', 'data']; 


    protected $hidden = []; 


    protected $casts = []; 


    protected $dates = []; 

} 

但是,如果我更改控制器上的一條線:

<?php 

namespace App\Http\Controllers; 
use App\UserEdit; 
use Illuminate\Http\Request; 
use App\Http\Requests; 

class UserEntryController extends Controller 
{ 

    public function show(UserEdit $id) { 

     return view('UserEdit', compact('id')); 
     //return $id; 

    } 

} 

上述刀片代碼不會運行。實際上,我無法解析發送給視圖的數組。當然直{{id}}會給我數組的實際內容。 「ID」:535,「各種」:「Del」,「件」:「22」,「of」:「32」,「table」:「54」,「data」:「John」 }

所以我想我的問題是。如果我正在以這種數組的形式獲取數據。如何遍歷它來應用格式化,把它放在表中,或放在一個表單等?

回答

1

你的命名約定實際上讓你感到困惑。 只要您返回並使用對象,將該$ id變量重命名爲更明顯的東西。 像:

class UserEntryController extends Controller 
{ 
    ... 
    public function show(UserEdit $object) { 
     return view('UserEdit', compact('object')); 
    } 
    ... 
} 

對於情況下,當你的框架沒有設置爲直接綁定到對象和你顯示方法接收的$ id,應該比你通過查詢數據庫返回的對象。

class UserEntryController extends Controller 
{ 
    ... 
    public function show($id) { 
     $object = UserEdit::findOrFail($id); 
     return view('UserEdit', compact('object')); 
    } 
    ... 
} 

...和你在你的視圖刀片文件中你可以使用它,就像你在上面的例子。

@foreach ($object as $foo) 
    @foreach ($foo as $name) 
     {{ $name }} 
    @endforeach 
@endforeach`