передача идентификатора сущности в контроллер

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
riaron
Сообщения: 97
Зарегистрирован: 2018.12.04, 14:12

передача идентификатора сущности в контроллер

Сообщение riaron »

есть к примеру car при переходе на карточку каждого отределеного car нужно запустить чат с сортировкой по дате. Столкнулся с проблемой передачи идентификатора авто в контроллер как решить данную проблему.
попробовал вывести все на вью файле выводит ошибку: syntax error, unexpected '$pagination' (T_VARIABLE)
вот код:

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

<?php
use yii\helpers\Url;
use yii\widgets\ActiveForm;
use yii\helpers\Html;
use yii\widgets\LinkPager;
use app\models\Cars;
use app\models\Chat;
use yii\data\Sort;
use yii\data\Pagination;


$request = Yii::$app->request;

$id = $request->get('id');
    $car=Cars::find()->where(['car_id'=>$id])->one();
    $car->photo = substr_replace($car->photo, null, 0, 3);
    echo "
    <div class='about'>
        <a>Название:$car->car_name</a><br>
        <img class='wphoto' src='../web/$car->photo'><br>
        <a>производитель: $car->producer</a><br>
        <a>Описание: $car->car_descr</a><br>

       
		<a><img class='carticon' src='..\web\images\icons\power.jpg'>Мощность: $car->power</a>
		<a><img class='carticon' src='..\web\images\icons\accsel.jpg'>Ускорение: $car->acsel</a>
		<a><img class='carticon' src='..\web\images\icons\/topsp.jpg'>Максималка: $car->acsel</a><br>

		
		<a><img class='carticon' src='..\web\images\icons\price.jpg'>Цена:$car->itemprice</a>
		<a><img class='carticon' src='..\web\images\icons\/typewd.jpg'>Привод:$car->typewd</a>
		<a><img class='carticon' src='..\web\images\icons\body.jpg'>Тип кузова:$car->bodytype</a>
		
		
    </div>

        
";
 $sort = new Sort([
        'attributes' => [
            'date'=> [
                'asc' => ['date' => SORT_ASC],
                'desc' => ['date' => SORT_DESC],
                'default' => SORT_DESC,
                'label' => 'Дате',
            ]
        ],
    ]);
         $chat = Chat::find()->where(['car_id'=>$id])->all();
		 $count=Chat::find()->where(['car_id'=>$id])->all()->count()
         $pagination = new Pagination(['totalCount' => $count,
             'defaultPageSize'=>10]);
         $output = $chat->offset( $pagination->offset )->limit( $pagination->limit )->orderBy($sort->orders)->all();
foreach($output as $outp){
	$out.="<a class='yelllow'><bold>$outp->name ||| $outp->date</bold><br>
        $outp->text<br>
        $outp->date<br></a>";
}
echo "<div class='sort'><a style='color:white;'>Сортировать по :</a> ".$sort->link('date') ."</div><br>";
echo"
<div style='background-color:black'>
$out
</div>
";
?>
<?php $form = ActiveForm::begin(['options' => ['id' => 'testForm', 'options' => ['enctype' => 'multipart/form-data']]])?>
<?= Html::input('text', 'text','', ['class' => 'usr'])?>
<?= Html::submitButton('Отправить', ['name' => 'submits','class' => 'btn btn-success'])?>
<?php ActiveForm::end() ?>
<?php
$submits = filter_input(INPUT_POST, 'submits');
    $phrase = filter_input(INPUT_POST, 'text');
if(isset($submits)){
	Yii::$app->response->redirect(Yii::$app->urlManager->createAbsoluteUrl(['site/orderid','id' => $id, 'text' =>  $phrase,]));
}
?>

yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: передача идентификатора сущности в контроллер

Сообщение yiiliveext »

После $count=Chat::find()->where(['car_id'=>$id])->all()->count() не хватает точки с запятой.
riaron
Сообщения: 97
Зарегистрирован: 2018.12.04, 14:12

Re: передача идентификатора сущности в контроллер

Сообщение riaron »

я все вывел во view файле тут проблем не должно быть?
я исправил некоторые ошибки вот исправленный код

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

<?php
use yii\helpers\Url;
use yii\widgets\ActiveForm;
use yii\helpers\Html;
use yii\widgets\LinkPager;
use app\models\Cars;
use app\models\Chat;
use yii\data\Sort;
use yii\data\Pagination;


$request = Yii::$app->request;

$id = $request->get('id');
    $car=Cars::find()->where(['car_id'=>$id])->one();
    $car->photo = substr_replace($car->photo, null, 0, 3);
    echo "
    <div class='about'>
        <a>Название:$car->car_name</a><br>
        <img class='wphoto' src='../web/$car->photo'><br>
        <a>производитель: $car->producer</a><br>
        <a>Описание: $car->car_descr</a><br>

       
		<a><img class='carticon' src='..\web\images\icons\power.jpg'>Мощность: $car->power</a>
		<a><img class='carticon' src='..\web\images\icons\accsel.jpg'>Ускорение: $car->acsel</a>
		<a><img class='carticon' src='..\web\images\icons\/topsp.jpg'>Максималка: $car->acsel</a><br>

		
		<a><img class='carticon' src='..\web\images\icons\price.jpg'>Цена:$car->itemprice</a>
		<a><img class='carticon' src='..\web\images\icons\/typewd.jpg'>Привод:$car->typewd</a>
		<a><img class='carticon' src='..\web\images\icons\body.jpg'>Тип кузова:$car->bodytype</a>
		
		
    </div>

        
";
 $sort = new Sort([
        'attributes' => [
            'date'=> [
                'asc' => ['date' => SORT_ASC],
                'desc' => ['date' => SORT_DESC],
                'default' => SORT_DESC,
                'label' => 'Дате',
            ]
        ],
    ]);
         $chat = Chat::find()->where(['car_id'=>$id])->all();
		 $count=count($chat);
         $pagination = new Pagination(['totalCount' => $count,
             'defaultPageSize'=>10]);
         $output = $chat->offset( $pagination->offset )->limit( $pagination->limit )->orderBy($sort->orders)->all();
foreach($output as $outp){
	$out.="<a class='yelllow'><bold>$outp->name ||| $outp->date</bold><br>
        $outp->text<br>
        $outp->date<br></a>";
}
echo "<div class='sort'><a style='color:white;'>Сортировать по :</a> ".$sort->link('date') ."</div><br>";
echo"
<div style='background-color:black'>
$out
</div>
";
?>
<?php $form = ActiveForm::begin(['options' => ['id' => 'testForm', 'options' => ['enctype' => 'multipart/form-data']]])?>
<?= Html::input('text', 'text','', ['class' => 'usr'])?>
<?= Html::submitButton('Отправить', ['name' => 'submits','class' => 'btn btn-success'])?>
<?php ActiveForm::end() ?>
<?php
$submits = filter_input(INPUT_POST, 'submits');
    $phrase = filter_input(INPUT_POST, 'text');
if(isset($submits)){
	Yii::$app->response->redirect(Yii::$app->urlManager->createAbsoluteUrl(['site/orderid','id' => $id, 'text' =>  $phrase,]));
}
?>

выводит ошибку на Call to a member function offset() on array https://ibb.co/rbnH5Lj
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: передача идентификатора сущности в контроллер

Сообщение yiiliveext »

Это

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

$chat = Chat::find()->where(['car_id'=>$id])->all();
		 $count=count($chat);
         $pagination = new Pagination(['totalCount' => $count,
             'defaultPageSize'=>10]);
         $output = $chat->offset( $pagination->offset )->limit( $pagination->limit )->orderBy($sort->orders)->all();
заменить на

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

    $chatQuery = Chat::find()->where(['car_id'=>$id]);
    $chatCountQuery = clone $chatQuery;
    $count = $chatCountQuery->count();
    $pagination = new Pagination(['totalCount' => $count,
         'defaultPageSize'=>10]);
         $output = $chatQuery->offset( $pagination->offset )->limit( $pagination->limit )->orderBy($sort->orders)->all();
Ответить