ParseError syntax error, unexpected ';', expecting ']'

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение unknownby »

Откуда приходит $username ?
Мб сделаешь так, как чуть выше написал я? Убрав лишнюю логику из контроллера, которой не было.
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

спасибо заработало
как можно теперь один гридвью зависать в один вид и от этого вида в других видах вставить код
Чтоб не использовать повтор кода
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение unknownby »

Вынеси в отдельный файл и передавай в него dataProvider и searchModel
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение unknownby »

Вынести можно если повторяется, а если для разных таблиц, то не подойдёт такое.
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

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

<div class="history-balance-index">

    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            ['attribute' => 'user_id',
                'value' => function ($model) {
                    return $model->user->username;
                }
            ],
            [
                'attribute' => 'balance',
                'format' => 'raw',
                'value' => function ($model) {
                    return $model->balance . '<br>
                        <span class="text-success">' . $model->credit . '</span>';
                }
            ],
            [
                'attribute' => 'balance_up',
                'format' => 'raw',
                'value' => function ($model) {
                    return Html::tag('span', $model->balance_up . '<br>' . $model->credit_up . (($model->credit_up >= 0)), [
                        'class' => ($model->credit_up >= 0) ? 'text-success' : 'text-danger'
                    ]);
                }
            ],
            [
                'attribute' => 'type',
                'filter' => Html::activeDropDownList(
                    $searchModel,
                    'type',
                    HistoryBalance::getSortLabels(),
                    [
                        'everyday' => 'каждый день',
                        'class' =>
                            'form-control form-control-sm'
                    ]
                ),
            ],
            'comment',
        ],
    ]); ?>
</div>
этот код для одной таблицы
поместил его в вид , но не получается выести

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

<?php

use common\models\HistoryBalance;
use yii\grid\GridView;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\widgets\ListView;

/* @var $this yii\web\View */
/* @var $searchModel backend\models\HistoryBalanceSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = Yii::t('app', 'History Balances');
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="history-balance-index">
<!---->
<!--    <h1>--><?//= Html::encode($this->title) ?><!--</h1>-->
<!---->
<!--    <p>-->
<!--        --><?//= Html::a(Yii::t('app', 'Create History Balance'), ['create'], ['class' => 'btn btn-success']) ?>
<!--    </p>-->
<!---->
<!--    --><?//= GridView::widget([
//        'dataProvider' => $dataProvider,
//        'filterModel' => $searchModel,
//        'columns' => [
//            ['class' => 'yii\grid\SerialColumn'],
//
//            ['attribute' => 'user_id',
//                'value' => function ($model) {
//                    return $model->user->username;
//                }
//            ],
//            [
//                'attribute' => 'balance',
//                'format' => 'raw',
//                'value' => function ($model) {
//                    return $model->balance . '<br>
//                        <span class="text-success">' . $model->credit . '</span>';
//                }
//            ],
//            [
//            'attribute' => 'balance_up',
//            'format' => 'raw',
//            'value' => function($model) {
//                return \yii\helpers\Html::tag('span', $model->balance_up . '<br>' . $model->credit_up . (($model->credit_up >= 0)), [
//                  'class' => ($model->credit_up >= 0) ? 'text-success' : 'text-danger'
//                ]);
//              }
//            ],
//            [
//                'attribute' => 'type',
//                'filter' => Html::activeDropDownList(
//                    $searchModel,
//                    'type',
//                    HistoryBalance::getSortLabels(),
//                    [
//                        'everyday' => 'каждый день',
//                        'class' =>
//                        'form-control form-control-sm'
//                    ]
//                ),
//            ],
//            'comment',
//
//        ],
//    ]); ?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'pager' => [
            'hideOnSinglePage' => true,
//            'firstPageLabel' => Yii::t('main', 'First'),
            'lastPageLabel'  => Yii::t('new', 'new'),
        ],
//        'itemView' => 'new',
        'layout' => '<div class="box box-solid"><div class="box-header"><div class="pull-right">{summary}</div></div></div><div class="row">{items}</div>{pager}',
    ])?>

    <?

//    echo GridView::widget([
//        ’dataProvider’ => $dataProvider,
//        ’itemView’ => ’new’,
//    ]); ?>
</div>
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

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

    <?= $this->render('new') ?>
так не работает
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

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

    <?php include __DIR__ . 'new.php'; ?>
так не работает
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

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

    public function actionIndex()
    {
        $searchModel = new HistoryBalanceSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]) && $this->render('new') ;
    }
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

Unknown Property – yii\base\UnknownPropertyException
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

Я читал
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

как нужно сделать?
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

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

<?php

namespace backend\controllers;

use Yii;
use common\models\HistoryBalance;
use backend\models\HistoryBalanceSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;

/**
 * HistoryBalanceController implements the CRUD actions for HistoryBalance model.
 */
class HistoryBalanceController extends Controller
{

    /**
     * {@inheritdoc}
     */
    public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }
    /**
     * Lists all HistoryBalance models.
     * @return mixed
     */
    public function actionIndex()
    {
        $searchModel = new HistoryBalanceSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }

}
HistoryBalanceController.php
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

index.php

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

<?php

use common\models\HistoryBalance;
use yii\grid\GridView;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\widgets\ListView;

/* @var $this yii\web\View */
/* @var $searchModel backend\models\HistoryBalanceSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = Yii::t('app', 'History Balances');
$this->params['breadcrumbs'][] = $this->title;
?>
<?= $this->render('new') ?>
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

new.php

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

<div class="history-balance-index">

    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            ['attribute' => 'user_id',
                'value' => function ($model) {
                    return $model->user->username;
                }
            ],
            [
                'attribute' => 'balance',
                'format' => 'raw',
                'value' => function ($model) {
                    return $model->balance . '<br>
                        <span class="text-success">' . $model->credit . '</span>';
                }
            ],
            [
                'attribute' => 'balance_up',
                'format' => 'raw',
                'value' => function ($model) {
                    return Html::tag('span', $model->balance_up . '<br>' . $model->credit_up . (($model->credit_up >= 0)), [
                        'class' => ($model->credit_up >= 0) ? 'text-success' : 'text-danger'
                    ]);
                }
            ],
            [
                'attribute' => 'type',
                'filter' => Html::activeDropDownList(
                    $searchModel,
                    'type',
                    HistoryBalance::getSortLabels(),
                    [
                        'everyday' => 'каждый день',
                        'class' =>
                            'form-control form-control-sm'
                    ]
                ),
            ],
            'comment',
        ],
    ]); ?>
</div>
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

Error
Class 'GridView' not found
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение unknownby »

Всё что связано с гридом у тебя должно быть в файле new.php
логично же?
Твоё представление, которое ты хочешь вынести в отдельный файл должно иметь полный набор всего, что должно быть использовано в любом месте.
cqfmkapb
Сообщения: 162
Зарегистрирован: 2019.12.08, 15:49

Re: ParseError syntax error, unexpected ';', expecting ']'

Сообщение cqfmkapb »

логично
а что нужно ?
Ответить