Laravel Livewire 组件偏移量
Laravel Livewire component offset
我正在尝试通过 Livewire
组件内部调用的 laravel 控制器获取一些技术人员数据。在某些情况下,控制器 returns null
因为没有关联的技术人员。
这是我的 livewire 组件渲染视图:
class TechniciansAssociated extends Component
{
public function render()
{
$technicians = (new HomeController())->getTechnicians();
return view('livewire.dashboard.technicians-associated', [
'technicians' => $technicians,
]);
}
}
这里是从家庭控制器调用的函数:
public function getTechnicians()
{
$customer_ids = json_decode(User::find(Auth::id())->userCustomers->customer_id,true);
$technicians_data = DB::connection('mysql')
-> select('SELECT distinct users.id, users.name, users.surname, users.lastname, users.email, users.cargo, users.photo
FROM users
INNER JOIN contractsproductsmulti AS cpm ON users.id = cpm.userId
INNER JOIN contractsproducts AS cp ON cp.id = cpm.contractproduct_id
INNER JOIN contracts AS cont ON cont.id = cp.idcontract
WHERE users.isActive = 1 AND cont.idCustomer IN (?)', $customer_ids
);
if (count($technicians_data) > 0){
return $technicians_data;
}
return null;
}
最后,在尝试获取渲染 livewire 视图的主视图时出现错误
@section('content')
<section id="dash-cust-info">
<div class="row p-t-30 p-b-30">
<div class="col-md-6">
<h4>Customer info</h4>
</div>
<div class="col-md-3">
<h4>Comm_1</h4>
<div class="card no-border no-margin">
@livewire('dashboard.commercials-associated')
</div>
</div>
<div class="col-md-3">
<h4>Comm_2</h4>
<div class="card no-border no-margin">
@livewire('dashboard.technicians-associated')
</div>
</div>
</div>
....
错误:
Undefined offset: 1 (View: /......../resources/views/home.blade.php)
好的,LiveWire 组件需要一个 HTML 元素才能在其自己的视图上获得结果。例如:
<div> //missed on my code
@foreach($users as $user)
{{$user->id}}
@endforeach
</div>
我想 对 livewire 中的此类问题提供了很好的解释。把它留在这里,以便将来遇到此类问题的任何人都可以得到帮助。不客气
我正在尝试通过 Livewire
组件内部调用的 laravel 控制器获取一些技术人员数据。在某些情况下,控制器 returns null
因为没有关联的技术人员。
这是我的 livewire 组件渲染视图:
class TechniciansAssociated extends Component
{
public function render()
{
$technicians = (new HomeController())->getTechnicians();
return view('livewire.dashboard.technicians-associated', [
'technicians' => $technicians,
]);
}
}
这里是从家庭控制器调用的函数:
public function getTechnicians()
{
$customer_ids = json_decode(User::find(Auth::id())->userCustomers->customer_id,true);
$technicians_data = DB::connection('mysql')
-> select('SELECT distinct users.id, users.name, users.surname, users.lastname, users.email, users.cargo, users.photo
FROM users
INNER JOIN contractsproductsmulti AS cpm ON users.id = cpm.userId
INNER JOIN contractsproducts AS cp ON cp.id = cpm.contractproduct_id
INNER JOIN contracts AS cont ON cont.id = cp.idcontract
WHERE users.isActive = 1 AND cont.idCustomer IN (?)', $customer_ids
);
if (count($technicians_data) > 0){
return $technicians_data;
}
return null;
}
最后,在尝试获取渲染 livewire 视图的主视图时出现错误
@section('content')
<section id="dash-cust-info">
<div class="row p-t-30 p-b-30">
<div class="col-md-6">
<h4>Customer info</h4>
</div>
<div class="col-md-3">
<h4>Comm_1</h4>
<div class="card no-border no-margin">
@livewire('dashboard.commercials-associated')
</div>
</div>
<div class="col-md-3">
<h4>Comm_2</h4>
<div class="card no-border no-margin">
@livewire('dashboard.technicians-associated')
</div>
</div>
</div>
....
错误:
Undefined offset: 1 (View: /......../resources/views/home.blade.php)
好的,LiveWire 组件需要一个 HTML 元素才能在其自己的视图上获得结果。例如:
<div> //missed on my code
@foreach($users as $user)
{{$user->id}}
@endforeach
</div>
我想