2016-07-26 83 views
-1

我想在我的視圖頁面上顯示保存在數據庫中的內容。我已經應用用戶和帳戶之間的關係。laravel 5.2中的未定義變量不知道爲什麼

我有另一種用戶和帖子之間的關係,這是完美的工作。

我得到的錯誤是:

ErrorException在0401a2c6f4dbf412d9f16ba1e4ced9e54c8bb622.php行132: 未定義的變量:賬戶(查看:E:\ WAMP \ WWW \加侖\資源\意見\ myplace.blade。 PHP)

我的視圖代碼:

<form action="{{route('account')}}" id="acc" method="post"> 
    <div class="col-lg-3"><label>Estado</label> 
    @foreach($accounts as $account) 
    <textarea style="display:none;" name="textfield4" id="textfield4">{{$account->estado}}</textarea></div> 
    <div class="col-lg-2 es" id="estado"></div> 
    @endforeach 

我的控制器:

<?php 

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\User; 
use App\Account; 
use Illuminate\Support\Facades\Auth; 

class AccountController extends Controller 
{ 
    public function account(Request $request) 
    { 
     $account = new Account(); 
     $account->estado = $request['textfield4']; 
     $request->user()->accounts()->save($account); 

     return redirect()->route('myplace'); 
    } 

    public function getaccount() 
    { 
     User::find(Auth::id())->accounts; 
     $accounts = Account::orderBy('created_at','desc')->get(); 

     return view('myplace',['accounts'=>$accounts]); 
    } 
} 
+0

代碼似乎沒問題。刪除緩存並重試。 – itachi

+0

@itachi sry,但不工作......任何其他可能的解決方案? –

+0

你的$賬戶變量呢,真的被定義了嗎?嘗試在調用視圖之前轉儲結果 – Mirdrack

回答

0

鑑於這種代碼...

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\User; 
use App\Account; 
use Illuminate\Support\Facades\Auth; 

class AccountController extends Controller 
{ 
    public function account(Request $request) 
    { 
     $account = new Account(); 
     $account->estado = $request['textfield4']; 
     $request->user()->accounts()->save($account); 

     return redirect()->route('myplace'); 
    } 


    public function getaccount() 

    { 
     User::find(Auth::id())->accounts; 
     $accounts = Account::orderBy('created_at','desc')->get(); 

     return view('myplace',['accounts'=>$accounts]); 
    } 
} 

$account->estado = $request['textfield4'];應該$account->estado = $request->input('textfield4', 'some_default_value');

User::find(Auth::id())->accounts;確實沒有任何結果,$accounts = Account::orderBy('created_at','desc')->get();排序所有帳戶。

至於如何沒有您的帳戶與orderBy顯示可能是由於沒有任何查詢要選擇什麼或條件它是真實的。默認值可能會有所幫助,但如果您有些時髦的東西,它可能會被破壞。沒有更多的代碼就沒有太多的工作要做。

另一種猜測我有關於這return view('myplace',['accounts'=>$accounts]);應該是return view()->make('myplace',['accounts'=>$accounts]);

編輯:

他的問題是,他被導航到/ MyPlace酒店這並不路線getaccount()其路由到getmyplace()它沒有通過$ accounts變量。

+0

它不工作........我可以爲您提供更多的代碼.Jz告訴我....你想要全視圖代碼? –

+0

這不是一個問題,它可能是您處理路由,中間件或模型的問題。您可以在視圖生成之前確認您是否使用了「dd($ accounts)」,該變量是否已定義,並且其值是否正確? – Sieabah

+0

我跟着我的帖子相同的步驟,它..所以工作爲什麼不爲這個BTW我沒有DD($帳戶)和GT這樣的: 帳戶{#183▼ #connection:空 #table:空 #的PrimaryKey: 「ID」 #keyType: 「INT」 #perPage:15 +遞增:真 +時間戳:真 #attributes:數組:5 [▶] #original:數組:5 [▶] #relations :[] #hidden:[] #visible:[] #appends:[] #fillable:[] #guarded:陣列:1 [▶] #dates:[] #dateFormat:空 #casts:[] #touches:[] #observables:[] #with:[] #morphClass:空 +存在:真 + wasRecentlyCreated:真} –

0

而不是做的:

return view('myplace',['accounts'=>$accounts]); 

您可以使用緊湊的控制器:

return view('myplace')->with(compact('accounts')); 
+0

sry但仍然無法工作....任何其他可能的解決方案? –

+0

在這種情況下,如果您在控制器中觸及公共功能帳戶,請考慮您正在重定向到路線('myplace'),而不設置「accounts」變量 –

+0

問題似乎與您的邏輯有關views/controller,但是嘗試檢查$ accounts變量是否存在,用這個@if($ accounts)包含整個foreach循環[email protected] –