#php #variables #components #laravel-8
#php #переменные #Компоненты #laravel-8
Вопрос:
я использую компоненты laravel 8, которые, согласно документу, могут передавать данные и использовать их. но мне нужна некоторая модификация переданных данных в качестве переменной, которую можно использовать в компоненте
в моем коде получена неопределенная переменная: ошибка covers
<x-item_h :item="$item"/>
item-h.blade.php
<div class="item-h">
{{$item}}
{{$covers}}
</div>
item-h.php
class Item_h extends Component
{
public $item;
public $covers;
public function __construct($item )
{
$this->item = $item;
if ($item->getCover->count() > 0) {
$covers = $item->getCover;
} else {
$covers = $item->artists->getCover;
}
}
public function render()
{
return view('components.item_h');
}
}
итак, как определить переменную в компоненте, которую можно использовать в нем?
Спасибо
Комментарии:
1. вам нужно использовать
$this->covers
вместо$covers
в вашемItem_h
конструкторе.2. @remul я проверял это раньше, не работает
Ответ №1:
Во-первых, вам нужно добавить обложки, как при вызове компонента таким образом.
<x-item_h :item="$item" covers/>
Теперь обновите конструктор и добавьте значение по умолчанию по вашему выбору, так что даже если вы забудете присвоить ему значение, это не приведет к сбою вашего представления
class Item_h extends Component
{
public $item;
public $covers;
public function __construct($item ,$covers={{REPLACE WITH DEFAULT VALUE}})
{
$this->item = $item;
$this->covers = $covers;
if ($item->getCover->count() > 0) {
$covers = $item->getCover;
} else {
$covers = $item->artists->getCover;
}
}
public function render()
{
return view('components.item_h');
}
}
Я уверен, что это решит вашу проблему
Комментарии:
1. Также, если вы хотите отправить обложки в качестве переменной, вы можете это сделать, также вы можете изменить $covers на #this->covers; это будет работать отлично