laravel 5.2中未定义的变量don';我不知道为什么


Undefined variable in laravel 5.2 don't know why

我想在视图页面上显示保存在数据库中的内容。我已经应用了用户和帐户之间的关系。

我在用户和帖子之间有另一种关系,它运行得很好。

我得到的错误是:

0401a2c6f4dbf412d9f16ba1e4ced9e54c8bb622.php第132行出现错误异常:未定义的变量:accounts(视图:E:''wamp''www''gal''resources''views''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]);
    }
}

给定此代码。。。

<?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变量。

不用做:

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

您可以在控制器中使用compact:

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