首页 > 解决方案 > 未定义的变量问题 Laravel 5.4

问题描述

我一直被这个错误困扰,所以如果有请原谅我,因为我还是 laravel 的新手。我收到了这个错误

未定义变量:clientTransactions(查看:C:\xampp\htdocs\dcgwapo\resources\views\service_details\create.blade.php)

但我有一个正确的代码,但我仍然想知道为什么它仍然是未定义的变量,因为我在控制器中定义了它。

服务详情代码中的 create.blade.php

<div class="form-group">
    <label for="client_transaction_id">Client Trans ID: </label>
    <select class="form-control" name="client_transaction_id">
        @foreach ($clientTransactions as $clientTransaction)
            <option value= "{{ $clientTransaction->id }}">
              {{ $clientTransaction->id }}
            </option>
        @endforeach
    </select>
  </div>

ServiceDetails控制器代码

public function create()
{
    $users = User::pluck('fname', 'lname', 'id');
    $services = Service::pluck('name', 'id');
    $clientTransactions = ClientTransaction::all();
    return view('service_details.create', ['users' => User::all()], ['services' => Service::all()], ['clientTransactions' => ClientTransaction::all()]);
}

ServiceDetail.php 模型代码

public function clientTransaction()
{
  return $this->belongsTo(ClientTransaction::class);
}

我希望你能帮助我。谢谢!

标签: phplaravellaravel-5.4

解决方案


您以错误的方式将变量发送到您的视图。seconds 参数应该是一个包含所有变量的数组。到目前为止,您view为每个变量的函数添加了一个新参数。

view('view', [...], [...], [...])

它应该是这样的:

view('view', [...1, ...2, ...3])

因此,您需要更改的是对此的返回语句:

return view('service_details.create', ['users' => User::all(), 'services' => Service::all(), 'clientTransactions' => ClientTransaction::all()]);

推荐阅读