【问题标题】:Laravel problem with passing variables from controller to view将变量从控制器传递到视图的 Laravel 问题
【发布时间】:2019-03-30 02:06:07
【问题描述】:

我正在开发一个 laravel 项目,但在将变量从控制器传递到视图时遇到问题:

这是控制器方法:

public function index($id){
        $data = [];
        $company = DB::table('companies')->where('id',$id)->first();
        return view('searchResultAdmin.index',  ['company'=>$company, 'Data'=>$data]);
    }

这是视图:

{{ Form::open(array('url' => '/SearchResultAdmin',  'method' => 'post')) }}
                            <div class="radio-buttons display-inline">
                                <fieldset class="display-inline group1">
                                    <label class="radio-inline">
                                        <input type="radio" name="SearchLocation" id="value1" value="Actuals" checked>Actuals
                                    </label>
                                    <label class="radio-inline">
                                        <input type="radio" name="SearchLocation" id="value2" value="Forecasts">Forecasts
                                    </label>
                                </fieldset>
                                {{ Form::hidden('id', ($company->id)) }}
                                <fieldset class="display-inline">
                                    <label class="radio-inline">
                                        <input type="radio" name="Order" id="value3" value="Ascending" checked>Ascending
                                    </label>
                                    <label class="radio-inline">
                                        <input type="radio" name="Order" id="value4" value="Descending">Descending
                                    </label>
                                </fieldset>
                            </div>
                            <div class="dropdown-header-table display-inline">
                                <h5>Search By:
                                    <select name="SearchBy">
                                        <option value="Account">Account</option>
                                        <option value="Name">Name</option>
                                        <option value="Year">Year</option>
                                        <option value="Description">Description</option>
                                        <option value="Amount">Amount</option>
                                    </select>
                                </h5>
                            </div>
                            <div class="search-input display-inline">
                                <div class="table-form-header">
                                    <input type="text" class="form-control" name="SearchInputs" placeholder="Search...">
                                    <span class="input-group-btn">
                                        <button class="btn btn-default" type="submit">
                                            <i class="fa fa-search"></i>
                                        </button>
                                    </span>
                                </div>
                            </div>
                        {{ Form::close() }}

错误提示:视图中未定义的变量公司

【问题讨论】:

  • 它看起来不错,我会确保这是实际的控制器并查看您正在点击。
  • 我已经测试了好几次,数据确实可以看到,但是隐藏的输入有一个问题,我不知道它是什么
  • 您提供的代码无法重现,因此我假设此处未包含相关内容。连接一个调试器,看看 $company 在哪里失去了它的价值
  • 可能是因为隐藏标签内的括号{{ Form::hidden('id', ($company-&gt;id)) }}尝试做{{ Form::hidden('id', $company-&gt;id) }}
  • 查看这里了解更多信息laravelcollective.com/docs/5.4/html

标签: laravel laravel-5


【解决方案1】:

你得到错误是因为

{{ Form::hidden('id', ($company->id)) }}

在返回视图之前在控制器中添加dd($company)dd($company-&gt;id),看看你得到了什么。

祝你好运!

【讨论】:

  • 它实际上返回了公司对象,这让我很困惑
  • 好的,什么返回 dd($company->id)?
  • 你确定这是正确的观点吗? searchResultAdmin.index?
  • 什么返回 dd($company->id)?
  • 并返回对象的id
猜你喜欢
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多