Рюкзак Laravel select_from_array

Я полностью запутался с полем select_from_array в рюкзаке Laravel.

В моем контроллере я использую поле select_from_array, где в опциях я вызываю функцию, но при запуске отображается ошибка кода. Пожалуйста, помогите мне с этим.

Ошибка: FatalErrorException в строке EventController.php 106: синтаксическая ошибка, неожиданное «$ this» (T_VARIABLE)

controller.php

public $crud = array(
"model" => "App\Larapen\Models\Event",
"entity_name" => "event",
"entity_name_plural" => "events",
"route" => "admin/event",
"reorder" => true,
"reorder_label" => "name",
"reorder_max_level" => 2,
"details_row" => true,

// *****
// COLUMNS
// *****
"columns" => [
[
'name' => "id",
'label' => "ID"],
],
"fields" => [

[
'name' => "event_name",
'label' => "Event name",
'type' => "text",
'placeholder' => "Event Name",
],
[
'name' => "event_topic",
'label' => "Event Topic",
'type' => "text",
'placeholder' => "Event Topic",
],
[
'name' => "event_type_id",
'label' => "Event Type",
'model' => "App\Larapen\Models\EventType",
'entity' => "eventType",
'attribute' => "name",
'type' => "select",
],

[
'name' => "about_event",
'label' => "About event",
'type' => "ckeditor",
'placeholder' => "About the Event",
],
[
'name' => "country_code",
'label' => "Country",
'type' => 'select_from_array',
'options' => $this->countries(),
'allows_null' => false,

],
],
);public function countries()
{
..................
}

Пожалуйста, помогите мне с этим, почему это происходит? как решить эту проблему?
В ожидании ответа…………….

1

Решение

Вы не можете использовать псевдопеременную $ this вне метода класса.

http://php.net/manual/en/language.oop5.properties.php

Псевдопеременная $ this доступна внутри любого метода класса, когда этот метод вызывается из контекста объекта. $ это ссылка на вызывающий объект

Так что если вы хотите установить атрибут crud с помощью $ this, вы можете установить его в функции __construct

public function __construct()
{
$this->crud['fields'][4] = $this->countries();
}

Или инициализируйте его функцией __construct

public $crud;

public function __construct()
{
$this->crud = array(
'model' => 'App\Larapen\Models\Event',
'entity_name' => 'event',
'entity_name_plural' => 'events',
'route' => 'admin/event',
'reorder' => true,
'reorder_label' => 'name',
'reorder_max_level' => 2,
'details_row' => true,

// *****
// COLUMNS
// *****
'columns' => [
[
'name' => 'id',
'label' => 'ID'
],
],
'fields' => [

[
'name' => 'event_name',
'label' => 'Event name',
'type' => 'text',
'placeholder' => 'Event Name',
],
[
'name' => 'event_topic',
'label' => 'Event Topic',
'type' => 'text',
'placeholder' => 'Event Topic',
],
[
'name' => 'event_type_id',
'label' => 'Event Type',
'model' => 'App\Larapen\Models\EventType',
'entity' => 'eventType',
'attribute' => 'name',
'type' => 'select',
],

[
'name' => 'about_event',
'label' => 'About event',
'type' => 'ckeditor',
'placeholder' => 'About the Event',
],
[
'name' => 'country_code',
'label' => 'Country',
'type' => 'select_from_array',
'options' => $this->countries(),
'allows_null' => false,

],
],
);
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector