2016-07-26 3 views
-1

Я хочу отобразить содержимое, сохраненное в базе данных на моей странице просмотра. Я применил отношения между пользователем и учетной записью.Неопределенная переменная в laravel 5.2 не знаю почему

У меня есть другая связь между пользователем и почтой, которая работает отлично.

Ошибки я получаю:

ErrorException в 0401a2c6f4dbf412d9f16ba1e4ced9e54c8bb622.php линия 132: Неопределенных переменные: счета (View: 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

Как насчет вашей переменной $ accounts, действительно определена? попытайтесь сбросить результат перед вызовом вида – 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]);

EDIT:

Его задача была ему навигация к/MyPlace, который не делает маршрут getaccount() это маршруты для getmyplace(), у которого не было переданной переменной $ accounts.

+0

это не сработало ........ Я могу предоставить вам больше кода.Jz скажите мне .... вы хотите полный код просмотра? –

+0

Это не проблема с представлением, это проблема, возможно, с тем, как вы обрабатываете маршрутизацию, промежуточное программное обеспечение или модель. Вы можете подтвердить, были ли вы 'dd ($ accounts)' непосредственно перед тем, как создается представление, что переменная определена и имеет значения, которые выглядят правильно? – Sieabah

+0

я следовал за ту же процедуру для моих постов, и она работала ..so, почему не для этого КСТАТИ я сделал Dd ($ счетов) и GT это: Account {# 183 ▼ #connection: нуль #table: нулевой # PrimaryKey: "идентификатор" #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») без установки переменной «учетные записи» –

+0

Проблема, похоже, связана с логикой вашего views/controller, но попробуйте проверить, существует ли переменная $ accounts, охватывающая весь цикл foreach: @if ($ accounts) [email protected] –

Смежные вопросы