未定义的变量问题 Laravel 5.4
Undefined variable issue Laravel 5.4
我一直被这个错误所困,所以请原谅我,因为我在 laravel 还是个新手。我收到这个错误
Undefined variable: clientTransactions (View:
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>
ServiceDetailsController 代码
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);
}
希望你能帮助我。谢谢!
您以错误的方式将变量发送到您的视图。 seconds 参数应该是一个包含所有变量的数组。截至目前,您为每个变量向 view
函数添加了一个新参数。
view('view', [...], [...], [...])
应该是这样的:
view('view', [...1, ...2, ...3])
所以您需要更改的是 return 语句:
return view('service_details.create', ['users' => User::all(), 'services' => Service::all(), 'clientTransactions' => ClientTransaction::all()]);
You can use compact to pass data from controller to view:
public function create()
{
$users = User::pluck('fname', 'lname', 'id');
$services = Service::pluck('name', 'id');
$clientTransactions = ClientTransaction::all();
return view('service_details.create',compact('users','services','clientTransactions');
}
view
函数的第二个参数接受数据的关联数组,您正在传递数组的 indexedArray,只需使用此 return 语句即可。 ;)
return view('service_details.create', [
'users' => User::all(),
'services' => Service::all(),
'clientTransactions' => ClientTransaction::all()
]);
我一直被这个错误所困,所以请原谅我,因为我在 laravel 还是个新手。我收到这个错误
Undefined variable: clientTransactions (View: 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>
ServiceDetailsController 代码
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);
}
希望你能帮助我。谢谢!
您以错误的方式将变量发送到您的视图。 seconds 参数应该是一个包含所有变量的数组。截至目前,您为每个变量向 view
函数添加了一个新参数。
view('view', [...], [...], [...])
应该是这样的:
view('view', [...1, ...2, ...3])
所以您需要更改的是 return 语句:
return view('service_details.create', ['users' => User::all(), 'services' => Service::all(), 'clientTransactions' => ClientTransaction::all()]);
You can use compact to pass data from controller to view:
public function create()
{
$users = User::pluck('fname', 'lname', 'id');
$services = Service::pluck('name', 'id');
$clientTransactions = ClientTransaction::all();
return view('service_details.create',compact('users','services','clientTransactions');
}
view
函数的第二个参数接受数据的关联数组,您正在传递数组的 indexedArray,只需使用此 return 语句即可。 ;)
return view('service_details.create', [
'users' => User::all(),
'services' => Service::all(),
'clientTransactions' => ClientTransaction::all()
]);