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

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

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

Сообщение cqfmkapb »

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

<?php

namespace common\models;

use common\models\user\Person;
use common\models\user\User;
use Yii;
use yii\behaviors\TimestampBehavior;

/**
 * This is the model class for table "history_balance".
 *
 * @property int $id
 * @property int $user_id
 * @property double $balance
 * @property double $credit
 * @property double $balance_up
 * @property double $credit_up
 * @property string $type
 * @property string $comment
 * @property int $created_at
 *
 * @property User $user
 */
class HistoryBalance extends \yii\db\ActiveRecord
{

    public const HT_EVERYDAY = 'everyday';
    public const HT_OREL = 'game_orel';
    public const HT_SAPER = 'game_saper';
    public const HT_DUEL = 'game_duel';

    public function behaviors()
    {
        return array_merge_recursive(parent::behaviors(), [
            'TimestampBehavior' => [
                'class' => TimestampBehavior::class,
                'updatedAtAttribute' => 'created_at',
            ],
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'history_balance';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['user_id', 'created_at'], 'integer'],
            [['balance', 'credit', 'balance_up', 'credit_up'], 'number'],
            [['type'], 'string', 'max' => 50],
            [['comment'], 'string', 'max' => 255],
            [['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::class, 'targetAttribute' => ['user_id' => 'id']],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => Yii::t('app', 'ID'),
            'user_id' => Yii::t('app', 'User ID'),
            'balance' => Yii::t('app', 'Balance'),
            'credit' => Yii::t('app', 'Credit'),
            'balance_up' => Yii::t('app', 'Balance Up'),
            'credit_up' => Yii::t('app', 'Credit Up'),
            'type' => Yii::t('app', 'Type'),
            'comment' => Yii::t('app', 'Comment'),
            'created_at' => Yii::t('app', 'Created At'),
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getUser()
    {
        return $this->hasOne(User::class, ['id' => 'user_id']);
    }

    public static function getSortLabels() {
        return [
            self::HT_EVERYDAY  => Yii::t('app', self::HT_EVERYDAY),
            self::HT_OREL => Yii::t('app', self::HT_OREL),
            self::HT_SAPER  => Yii::t('app', self::HT_SAPER),
            self::HT_DUEL  => Yii::t('app', self::HT_DUEL),
        ];
    }

    public static function findHistoryBalanceByUser($id){
        return HistoryBalance::find()
            ->where(['user_id' => $id])
            ->orderBy(['id' => SORT_DESC])
            ->limit(30)
            ->all();
    }

}

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

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

Сообщение cqfmkapb »

а так?
PersonController

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

<?php

namespace backend\controllers;

use common\models\HistoryBalance;
use Yii;
use common\models\user\Person;
use backend\models\PersonSearch;
use yii\data\ActiveDataProvider;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;

/**
 * PersonController implements the CRUD actions for Person model.
 */
class PersonController extends Controller
{
    /**
     * {@inheritdoc}
     */
    public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::class,
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }

    /**
     * Lists all Person models.
     * @return mixed
     */
    public function actionIndex()
    {
        $searchModel = new PersonSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

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

    public function actionView($id)
    {
        $query = HistoryBalance::find();

        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        return $this->render('view', [
            'model' => $this->findModel($id),
        ]);
    }

//    public function actionView($id)
//    {
//        $model = $this->findModel($id)// поиск твоей модели
//        $searchModel  = new  HistoryBalance();
//	    $dataProvider = $searchModel->search($id);
//        $query = HistoryBalance::find()
//            ->where('user_id' => $id)
//        ->orderBy('id'=> SORT_DESC)
//        ->limit(30);
//
//        return $this->render('view', [
//
//            'model' => $model,
//            'dataProvider' => $dataProvider,
//            'searchModel' => $searchModel,
//        ]);
//    }

    protected function findModel($id)
    {
        if (($model = PersonSearch::findOne($id)) !== null) {
            return $model;
        }

        throw new NotFoundHttpException(Yii::t('app', 'The requested page does not exist.'));
    }
}

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

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

Сообщение cqfmkapb »

или так?

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

    public function actionView($id)
    {
        $searchModel = new PersonSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('view', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'model' => $this->findModel($id),
        ]);
//        return $this->render('view', [
//            'model' => $this->findModel($id),
//        ]);
    }

unknownby
Сообщения: 600
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

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

Сообщение unknownby »

У тебя метод search должен возвращать dataProvider, а не получать его в контроллере, если тебе нужен dataProvider.
У тебя проблема в том, что ты хочешь взять историю баланса по Person, однако модель HistoryBalance у тебя завязана с моделью User, а не Person.
Тогда если у тебя Person связан с User
Нужно дописать join

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

public static function findHistoryBalanceByUser($id){
        return HistoryBalance::find()
            ->joinWith('user.person', false, 'LEFT JOIN')
            ->where(['person_id' => $id])
            ->orderBy(['id' => SORT_DESC])
            ->limit(30)
            ->all();
    }
Нужно посмотреть модель User и как она связана с Person

И плохо везде первичный ключ указывать id
Переделай для всех типо user_id, person_id, historybalance_id
Т.к. сейчас придётся в orderBy указывать по какому полю id сортировать. Из модели User или HistoryBalance или Person.

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

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

Сообщение cqfmkapb »

User

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

<?php
/**
 * Created by PhpStorm.
 * User: TOSHIBA-PC
 * Date: 13.05.2018
 * Time: 19:31
 */

namespace common\models\user;

use common\models\Todo;
use common\services\cookies\CookieService;
use Yii;
use yii\base\InvalidConfigException;
use yii\db\ActiveQuery;

/**
 * Class User
 * @package common\models\user
 *
 * @property Person $person
 * @property Todo $todo
 */
class User extends \dektrium\user\models\User
{
    public $cookieParams;

    private $person;

    /**
     * @return ActiveQuery
     */
    public function getPerson(): ActiveQuery
    {
        return $this->hasOne(Person::class, ['user_id' => 'id'])->inverseOf('user');
    }

    /**
     * @param $insert
     * @param $changedAttributes
     * @throws InvalidConfigException
     */
    public function afterSave($insert, $changedAttributes)
    {
        parent::afterSave($insert, $changedAttributes);
        if ($insert) {
            if (!$this->person) {
                $this->person = Yii::createObject(Person::class);
            }

            if (\Yii::$app->id === 'app-frontend') {
                $this->cookieParams = \Yii::$app->params['cookies'];
                $this->setRefovod();
                $this->setReferrer();
            }

            $this->person->link('user', $this);
        }
    }

    /**
     * Устанавливает рефовода
     * @inheritdoc
     */
    public function setRefovod(): void
    {
        $service = new CookieService([
            'name' => $this->cookieParams['refovod']['name'],
        ]);

        $this->person->refovod = $service->getValue();
    }

    /**
     * Устанавливает реферрер
     * @inheritdoc
     */
    public function setReferrer(): void
    {
        $service = new CookieService([
            'name' => $this->cookieParams['referrer']['name'],
        ]);
        $this->person->referrer = $service->getValue();
    }

    /**
     * @return ActiveQuery
     */
    public function getTodo(): ActiveQuery
    {
        return $this->hasMany(Todo::class, ['user_id' => 'id']);
    }

    public function fields()
    {
        return ['username', 'person'];
    }
}

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

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

Сообщение cqfmkapb »

user_id чем это плохо?

unknownby
Сообщения: 600
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

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

Сообщение unknownby »

Надо запрос правильно составить, чтобы выдавало последние 30 записей, которые тебе нужны.
Нужна схема БД, а то реально не понятно, когда у тебя есть id и user_id внутри моделей User и Person
Зачем такую запутанность создавать? Чем отличается модель User от Person ?

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

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

Сообщение cqfmkapb »

Изображение
persone это таблица

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

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

Сообщение cqfmkapb »

User

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

<?php
/**
 * Created by PhpStorm.
 * User: TOSHIBA-PC
 * Date: 13.05.2018
 * Time: 19:31
 */

namespace common\models\user;

use common\models\Todo;
use common\services\cookies\CookieService;
use Yii;
use yii\base\InvalidConfigException;
use yii\db\ActiveQuery;

/**
 * Class User
 * @package common\models\user
 *
 * @property Person $person
 * @property Todo $todo
 */
class User extends \dektrium\user\models\User
{
    public $cookieParams;

    private $person;

    /**
     * @return ActiveQuery
     */
    public function getPerson(): ActiveQuery
    {
        return $this->hasOne(Person::class, ['user_id' => 'id'])->inverseOf('user');
    }

    /**
     * @param $insert
     * @param $changedAttributes
     * @throws InvalidConfigException
     */
    public function afterSave($insert, $changedAttributes)
    {
        parent::afterSave($insert, $changedAttributes);
        if ($insert) {
            if (!$this->person) {
                $this->person = Yii::createObject(Person::class);
            }

            if (\Yii::$app->id === 'app-frontend') {
                $this->cookieParams = \Yii::$app->params['cookies'];
                $this->setRefovod();
                $this->setReferrer();
            }

            $this->person->link('user', $this);
        }
    }

    /**
     * Устанавливает рефовода
     * @inheritdoc
     */
    public function setRefovod(): void
    {
        $service = new CookieService([
            'name' => $this->cookieParams['refovod']['name'],
        ]);

        $this->person->refovod = $service->getValue();
    }

    /**
     * Устанавливает реферрер
     * @inheritdoc
     */
    public function setReferrer(): void
    {
        $service = new CookieService([
            'name' => $this->cookieParams['referrer']['name'],
        ]);
        $this->person->referrer = $service->getValue();
    }

    /**
     * @return ActiveQuery
     */
    public function getTodo(): ActiveQuery
    {
        return $this->hasMany(Todo::class, ['user_id' => 'id']);
    }

    public function fields()
    {
        return ['username', 'person'];
    }
}

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

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

Сообщение cqfmkapb »

Изображение
Изображение
это таблица User

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

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

Сообщение cqfmkapb »

чем плохо или хорошо если в других таблицах есть user_id?

unknownby
Сообщения: 600
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

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

Сообщение unknownby »

Примерно вот так нужно было показать схему БД. Чтобы понимать как у тебя связаны таблицы между собой.
Изображение


А то, что у тебя во всех таблицах есть user_id это не беда. Беда в простом понимании связей между таблицами.
Легче же соображать, когда у тебя связь между HistoryBalance и (Person / User) прописана вот так.
Модель HistoryBalance и две примерные связи

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

public function getUser() {
        return $this->hasOne(User::className(), ['user_id' => 'user_id']);
}
public function getPerson() {
        return $this->hasOne(Person::className(), ['person_id' => 'person_id']);
}
Т.е. у тебя в модели HistoryBalance сохраняется user_id или person_id для связи с пользователем/человеком.

Внутри модели User связь с HistoryBalance

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

public function getHistoryBalance() {
        return $this->hasMany(HistoryBalance::className(), ['user_id' => 'user_id']);
}
Внутри модели Person связь с HistoryBalance

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

public function getHistoryBalance() {
        return $this->hasMany(HistoryBalance::className(), ['person_id' => 'person_id']);
}
Для того, чтобы можно было выбрать всю историю баланса Person или User.

Тебе бы переделать БД по хорошему. Переделать первичные ключи в соответствии с названием таблицы, т.е. таблица User PK (primary key - первичный ключ) - user_id, таблица Person PK - person_id, таблица HistoryBalance PK - historybalance_id. Переделать связи в моделях.
А то в скором времени у тебя будут не очень приятные запросы в твоих search.

Твоя первоначальная задача решается несколькими путями, первый и самый простой чтобы проверить будет ли у тебя выводить информацию сделали через findHistoryBalanceByUser($id) в модели HistoryBalance.
1. делается find() из HistoryBalance
2. указывается joinWith('person', false, 'LEFT JOIN') с таблицей пользователя (ты ведь открыл Person - View, а там в $model->id указан id пользователя из модели Person)
3. указывается условие where(['person_id' => $id]), говорит о том, что нужно выбрать все записи с конкретным пользователем.
4. указывается сортировка orderBy
5. устанавливается лимит limit(30)
6. т.к. возврат записей, то прописываем all(), если бы возвращался запрос то ничего не прописывали бы.

Более долгий, но всё равно нужно правильная база данных.
Берем HistoryBalanceSearch в search дописываем дополнительный параметр $id.
Примерно вот так в PersonController

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

public function actionView($id)
    {
        $model = $this->findModel($id)// поиск твоей модели
        $searchModel  = new  HistoryBalanceSearch;
	$dataProvider = $searchModel->search(\Yii::$app->getRequest()->get(), $id);

        return $this->render('view', [
            'model' => $model,
            'dataProvider' => $dataProvider,
            'searchModel' => $searchModel,
        ]);
    }
Внутри модели HistoryBalanceSearch было бы

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

public function search($params, $id = 0)
    {
        $query = HistoryBalance::find();

	if(0 < $id){
	$query
	->joinWith('person', false, 'LEFT JOIN')
	->where(['person_id' => $id])
	->orderBy(['historybalance_id' => SORT_DESC])
	->limit(30);
	}
	
        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
        $query->andFilterWhere([
            'user_id' => $this->user_id,
            'balance' => $this->balance,
            'credit' => $this->credit,
            'balance_up' => $this->balance_up,
            'credit_up' => $this->credit_up,
            'created_at' => $this->created_at,
        ]);

        $query->andFilterWhere(['ilike', 'type', $this->type])
            ->andFilterWhere(['ilike', 'comment', $this->comment]);

        return $dataProvider;
    }
А дальше как я говорил с ListView

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

<?= ListView::widget([
	'dataProvider' => $dataProvider,
	'pager' => [
		'hideOnSinglePage' => true,
		'firstPageLabel' => Yii::t('main', 'First'),
		'lastPageLabel'  => Yii::t('main', 'Last'),
	],
	'itemView' => '_history_balance',
	'layout' => '<div class="box box-solid"><div class="box-header"><div class="pull-right">{summary}</div></div></div><div class="row">{items}</div>{pager}',
])?>
Создаешь своё представление (файл view со своими примерным именем _history_balance.php) в котором у тебя будет отрисовка информации, которая будет приходить по от контроллера $dataProvider.
Вроде бы понятно объяснил. Спрашивай конкретные вопросы, что не понял.

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

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

Сообщение cqfmkapb »

person_id если у меня нет?

Внутри модели User связь с HistoryBalance


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

public function getHistoryBalance() {
        return $this->hasMany(HistoryBalance::className(), ['id' => 'user_id']);
}
Внутри модели Person связь с HistoryBalance


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

public function getHistoryBalance() {
        return $this->hasMany(HistoryBalance::className(), [''user_id' => 'id']);
}

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

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

Сообщение cqfmkapb »

'itemView' => '_history_balance',

то есть нужно создать еще один вид? этот вид должен быть в Person видах? мне не нужно чтоб этот вид был в HistoryBalance виде

unknownby
Сообщения: 600
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

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

Сообщение unknownby »

Сделай внутри HistoryBalance связь с Person, чтобы можно было сделать условие, которое я прописал выше.

'itemView' => '_history_balance' - это представление, которое будет находиться в том же месте, где и твой файл person-view. Чтобы ListView мог его взять спокойно.

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

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

Сообщение cqfmkapb »

PersonController

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

<?php

namespace backend\controllers;

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

/**
 * PersonController implements the CRUD actions for Person model.
 */
class PersonController extends Controller
{
    /**
     * {@inheritdoc}
     */
    public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::class,
                'actions' => [
                    'delete' => ['POST'],
                ],
            ],
        ];
    }

    /**
     * Lists all Person models.
     * @return mixed
     */
    public function actionIndex()
    {
        $searchModel = new PersonSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

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

//    public function actionView($id)
//    {
//        return $this->render('view', [
//            'model' => $this->findModel($id),
//        ]);
//    }

//    public function actionView($id)
//    {
//        $model = $this->findModel($id)// поиск твоей модели
//        $searchModel  = new  HistoryBalance();
//	    $dataProvider = $searchModel->search($id);
//        $query = HistoryBalance::find()
//            ->where('user_id' => $id)
//        ->orderBy('id'=> SORT_DESC)
//        ->limit(30);
//
//        return $this->render('view', [
//
//            'model' => $model,
//            'dataProvider' => $dataProvider,
//            'searchModel' => $searchModel,
//        ]);
//    }


    public function actionView($id)
    {
        $model = $this->findModel($id)// поиск твоей модели
        $searchModel  = new  HistoryBalanceSearch;
	    $dataProvider = $searchModel->search(\Yii::$app->getRequest()->get(), $id);

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

    protected function findModel($id)
    {
        if (($model = PersonSearch::findOne($id)) !== null) {
            return $model;
        }

        throw new NotFoundHttpException(Yii::t('app', 'The requested page does not exist.'));
    }
}
пхп шторм пишет ошибки

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

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

Сообщение cqfmkapb »

ParseError
syntax error, unexpected '$searchModel' (T_VARIABLE)

1. in /web/yii2/backend/controllers/PersonController.php at line 78

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

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

Сообщение cqfmkapb »

person
папка

_history_balance.php

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

<?php

use yii\helpers\Html;
use yii\widgets\DetailView;

/* @var $this yii\web\View */
/* @var $model common\models\HistoryBalance */

$this->title = $model->id;
$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'History Balances'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
?>
<div class="history-balance-view">

    <h1><?= Html::encode($this->title) ?></h1>

    <p>
        <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
        <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->id], [
            'class' => 'btn btn-danger',
            'data' => [
                'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
                'method' => 'post',
            ],
        ]) ?>
    </p>

    <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            'user_id',
            'balance',
            'credit',
            'balance_up',
            'credit_up',
            'type',
            'comment',
            'created_at',
        ],
    ]) ?>

</div>

view.php

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

<?php

use common\models\HistoryBalance;
use yii\data\ActiveDataProvider;
use yii\grid\GridView;
use yii\helpers\Html;
use yii\widgets\DetailView;
use yii\widgets\ListView;

/* @var $this yii\web\View */
/* @var $model common\models\user\Person */

$this->title = $model->id;
$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'People'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
?>
<div class="person-view">

    <h1><?= Html::encode($this->title) ?></h1>

<!--    <p>-->
<!--        --><?//= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
<!--        --><?//= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->id], [
//            'class' => 'btn btn-danger',
//            'data' => [
//                'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'),
//                'method' => 'post',
//            ],
//        ]) ?>
<!--    </p>-->

    <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            'user_id',
            'balance',
            'balance_in',
            'balance_out',
            'credit',
            'refovod',
            'rating',
            'referrer:ntext',
            'bonus_count',
            'autoriz',
        ],

    ]) ?>
<!--    --><?//= DetailView::widget([
//        'model' => $model,
//        'attributes' => [
//            'id',
//            'user_id',
//            'balance',
//            'credit',
//            'balance_up',
//            'credit_up',
//            'type',
//            'comment',
//            'created_at',
//        ],
//    ]) ?>
<!--<!---->-->
<!--            --><?//= ListView::widget([
//             $dataProvider = new ActiveDataProvider([
//        'query' => HistoryBalance::find()->orderBy(30),
//        'pagination' => [
//        'pageSize' => 30,
//        ],
//        ]);
//        try{echo GridView::widget([
//        'dataProvider' => $dataProvider,}catch(Exception $e){};
//            }]) ?>

    <?= ListView::widget([
        'dataProvider' => $dataProvider,
        'pager' => [
            'hideOnSinglePage' => true,
            'firstPageLabel' => Yii::t('main', 'First'),
            'lastPageLabel'  => Yii::t('main', 'Last'),
        ],
        'itemView' => '_history_balance',
        'layout' => '<div class="box box-solid"><div class="box-header"><div class="pull-right">{summary}</div></div></div><div class="row">{items}</div>{pager}',
    ])?>

</div>

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

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

Сообщение cqfmkapb »

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

    public function actionView($id)
    {
//        $model = $this->findModel($id)// поиск твоей модели
        $searchModel  = new  HistoryBalanceSearch;
	    $dataProvider = $searchModel->search(\Yii::$app->getRequest()->get(), $id);

        return $this->render('view', [
            'model' => $model,
            'dataProvider' => $dataProvider,
            'searchModel' => $searchModel,
        ]);
    }
из-за этой строки ошибка $model = $this->findModel($id)// поиск твоей модели

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

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

Сообщение cqfmkapb »

при переходе на пользователя
Invalid Configuration – yii\base\InvalidConfigException
Please specify the "model" property.

1. in /web/yii2/vendor/yiisoft/yii2/widgets/DetailView.php at line 133
124125126127128129130131132133134135136137138139140141142

/**
* Initializes the detail view.
* This method will initialize required property values.
*/
public function init()
{
parent::init();

if ($this->model === null) {
throw new InvalidConfigException('Please specify the "model" property.');
}
if ($this->formatter === null) {
$this->formatter = Yii::$app->getFormatter();
} elseif (is_array($this->formatter)) {
$this->formatter = Yii::createObject($this->formatter);
}
if (!$this->formatter instanceof Formatter) {
throw new InvalidConfigException('The "formatter" property must be either a Format object or a configuration array.');
}

Ответить