猿问

未定义变量:php/laravel

我收到此错误消息


未定义变量:seller_type(查看:/var/www/resources/views/dash/dash.blade.php)


我无法弄清楚它的修复方法,我不确定我是否忽略了一些明显的东西。任何帮助,将不胜感激。


这是我的 dash.blade:


  @if(Auth::user()->id)

     <div class="row">

          <div class="col-md-12">

              <span>Seller Type: </span>

              <select class="seller_type_select" data-type="dash">

                 <option value="call_center" {{$seller_type == 'call_center' ? 'selected' : ''}}>Call Center</option>

                  <option value="dealership" {{$seller_type == 'dealership' ? 'selected' : ''}}>Dealership</option>

                </select>

            </div>

        </div>

    @endif

这是我的控制器:


class DashboardController extends Controller

{

    /**

     * Display a listing of the resource.

     *

     * @return Response

     */


    public function __construct()

    {

        setlocale(LC_MONETARY, 'en_US.utf8');

        $this->middleware('acl:view_dash', ['only' => ['index']]);

    }


    public function index()

    {

        $input = Input::all();


        $user_id = Auth::user()->id;

        $role_id = User::UserRoleData()->where('user_id', '=', $user_id)->first();

        $call_center = Auth::user()->call_center;

        $call_center = ($call_center == null ? '' : $call_center);

        $call_center = !empty($input['call_center']) ? $input['call_center'] : $call_center;

        $month = !empty($input['month']) ? $input['month'] : 'twentyfour';

        $seller_type = Auth::user()->seller_type;

        $seller_type = ($seller_type == null ? '' : $seller_type);

        $seller_type = !empty($input['seller_type']) ? $input['seller_type'] : 'call_center';

        $companies = Company::DistinctCompanies()->orderby('name')->get();

        $date = date('Y-m-d', strtotime('now -24 months'));


        if($seller_type == '2')

            {

            return $contracts->where('type_id', '=', 'call_center');

            }

            elseif($seller_type == '3')

            {

            return $contracts->where('type_id', '=', 'dealership');

            }


HUX布斯
浏览 194回答 2
2回答

三国纷争

简短的回答是您尚未定义该变量,而是尝试在 Blade 模板中使用它。但要注意两点:您的 Blade 模板包含以下@if语句:&nbsp;&nbsp;&nbsp;&nbsp;@if(Auth::user()->id)控制器中的这一行:$seller_type&nbsp;=&nbsp;Auth::user()->seller_type;鉴于该seller_type属性存在于您的登录用户上(假设您的控制器有效,我不知道),您应该能够直接从您的 Blade 模板中引用它。

GCT1015

首先,你需要重构这个控制器。它太复杂了,因此很难看出它的实际作用。此外,控制器中不仅有 DB 查询,它们也是原始查询,你最好不要在 Laravel 中使用它们,当然也不要用于这种微不足道的情况。考虑到您实际上并没有在控制器中返回视图,您的视图确实出现了,我是一个奇迹- 这是您绝对应该做的事情。相反,它似乎是你的观点被称为在你的中间件-这是你绝对应该不会做。所以我的建议是:阅读 Laravel 文档并根据那里提供的示例重构您的构造函数。此代码很糟糕并且容易出错。
随时随地看视频慕课网APP
我要回答