我想在视图页面上显示保存在数据库中的内容。我已经应用了用户和帐户之间的关系。
我在用户和帖子之间有另一种关系,它运行得很好。
我得到的错误是:
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'));