Ошибка syntax error, unexpected ',' с тернарным оператором

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
sshell72
Сообщения: 3
Зарегистрирован: 2018.11.12, 15:20

Ошибка syntax error, unexpected ',' с тернарным оператором

Сообщение sshell72 »

Добрый вечер! Осваиваю yii2. Столкнулся с такой проблемой. Пытаюсь сделать раздельное меню для гостей и пользователей.

Код: Выделить всё

       echo Nav::widget([
        'options' => ['class' => 'navbar-nav navbar-right'],
        'items' => [
			Yii::$app->user->isGuest ? (
				[ 'label' => 'Новые Посты', 'url' => '/joint-roles'],
				[ 'label' => 'Отправленные Посты', 'url' => '/current-roles'],
				[ 'label' => 'Тетрадь Сюжетов', 'url' => '/save-roles'],
				[ 'label' => 'Редактировать Данные', 'url' => '/edit/' . Yii::$app->user->id ],
			) : (
				['label' => 'Главная', 'url' => ['/']],
				[ 'label' => 'Новые Посты', 'url' => '/joint-roles'],
				[ 'label' => 'Отправленные Посты', 'url' => '/current-roles'],
				[ 'label' => 'Тетрадь Сюжетов', 'url' => '/save-roles'],
				[ 'label' => 'Редактировать Данные', 'url' => '/edit/' . Yii::$app->user->id ],
            )
        ],
    ]);
Но получаю ошибку Error
PHP Parse Error – yii\base\ErrorException
syntax error, unexpected ','

На строке: [ 'label' => 'Новые Посты', 'url' => '/joint-roles'],

Подскажите, как правильно написать.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Ошибка syntax error, unexpected ',' с тернарным оператором

Сообщение andku83 »

Код: Выделить всё

        'items' => Yii::$app->user->isGuest ? 
			[
				[ 'label' => 'Новые Посты', 'url' => '/joint-roles'],
				[ 'label' => 'Отправленные Посты', 'url' => '/current-roles'],
				[ 'label' => 'Тетрадь Сюжетов', 'url' => '/save-roles'],
				[ 'label' => 'Редактировать Данные', 'url' => '/edit/' . Yii::$app->user->id ],
			]
			:
			[
				['label' => 'Главная', 'url' => ['/']],
				[ 'label' => 'Новые Посты', 'url' => '/joint-roles'],
				[ 'label' => 'Отправленные Посты', 'url' => '/current-roles'],
				[ 'label' => 'Тетрадь Сюжетов', 'url' => '/save-roles'],
				[ 'label' => 'Редактировать Данные', 'url' => '/edit/' . Yii::$app->user->id ],
			],
    ]);
а лучше эти массивы вынести в переменные и в тернарке использовать их.
sshell72
Сообщения: 3
Зарегистрирован: 2018.11.12, 15:20

Re: Ошибка syntax error, unexpected ',' с тернарным оператором

Сообщение sshell72 »

andku83 писал(а): 2018.11.13, 00:33 а лучше эти массивы вынести в переменные и в тернарке использовать их.
Спасибо! Так и сделал!
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Ошибка syntax error, unexpected ',' с тернарным оператором

Сообщение SiZE »

А не кажется ли вам что тут логическая ошибка? http://prntscr.com/lhnybp

А вообще

Код: Выделить всё

$isGuest = Yii::$app->user->getIsGuest();

echo Nav::widget([
        'options' => ['class' => 'navbar-nav navbar-right'],
        'items' => [
		['label' => 'Главная', 'url' => ['/']],
		['label' => 'Новые Посты', 'url' => '/joint-roles'],
		['label' => 'Отправленные Посты', 'url' => '/current-roles'],
		['label' => 'Тетрадь Сюжетов', 'url' => '/save-roles'],
		['label' => 'Редактировать Данные', 'url' => '/edit/' . Yii::$app->user->id, 'visible' => !$isGuest],
        ],
]);
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Ошибка syntax error, unexpected ',' с тернарным оператором

Сообщение SiZE »

PS Yii::$app это вторая версия
Ответить