передача в представление
передача в представление
Дорогие пользователи этого форума,подскажите как после создания запроса создать передачу модели в представление,покажите на примере как это должно выглядеть???
Re: передача в представление
Большое спасибо за ответ,скажу открыто не разбераюсь вообще тяжело даётся мне программирование я самоучка - можете мне дать помощь?
Вот есть action под названием serial для вывода информации о сериале на экран в экшене создан запрос на вывод этой информации из бд,информация вывелась но вывелось всё в куче а не по своим местам что нужно сделать чтобы названия описания и другие данные сериала были на своём месте???вот запрос в экшене
вот контроллер
вот сама модель
что где нужно изменить дописать или убрать чтобы всё работало как нужно???
Вот есть action под названием serial для вывода информации о сериале на экран в экшене создан запрос на вывод этой информации из бд,информация вывелась но вывелось всё в куче а не по своим местам что нужно сделать чтобы названия описания и другие данные сериала были на своём месте???вот запрос в экшене
Код: Выделить всё
<?php
use common\models\Serial;
$model = Serial::find()
-> where(['alias_serial'=> YII::$app->request->get('alias_serial')])
-> one();
?>
<div class="series-view">
<h1>Описание сериала!</h1>
<table>
<tbody>
<tr>
<td style="padding: 10px 20px 10px; align: center; vertical-align: middle;">
<img src="/serial/view/id=18" width="160" height="260" alt="">
</td>
<td width="100%">
<table class="table table-striped table-bordered detail-view">
</td>
</tr>
<tr>
<td colspan="8">
<div id="serial-view" class="grid-serial";>
<?php var_dump($model);?>
<span style="display: block; margin: 0px 20px;"><?= $value->name ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->name_original ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->discription ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->genre ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->god ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->nachalo ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->konec ?></span><br><br>
<span style="display: block; margin: 0px 20px;"><?= $value->status ?></span><br><br>
<thead>
<tr>
<th>Название</th><br>
<th>Орегинальное название</th><br>
<th>Описание</th><br>
<th>Жанр</th><br>
<th>Год выпуска</th><br>
<th>Начало периода</th><br>
<th>Конец периода</th><br>
<th>Статус</th><br>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4">
<div class="empty">Ничего не найдено.</div>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
Код: Выделить всё
<?php
namespace frontend\controllers;
use Yii;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use common\models\LoginForm;
use frontend\models\PasswordResetRequestForm;
use frontend\models\ResetPasswordForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use common\models\Serial;
use common\models\Season;
/**
* Site controller
*/
class SiteController extends Controller
{
/**
* {@inheritdoc}
*/
public function actionSerial($id)
{
$model = Post::findOne($id);
if ($model === null) {
throw new NotFoundHttpException;
}
// рендерит вид с названием `view` и применяет к нему шаблон
return $this->render('view', [
'model' => $model,
]);
}
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['logout', 'signup'],
'rules' => [
[
'actions' => ['signup'],
'allow' => true,
'roles' => ['?'],
],
[
'actions' => ['logout'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
/**
* {@inheritdoc}
*/
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
/**
* Displays homepage.
*
* @return mixed
*/
public function actionIndex()
{
return $this->render('index');
{
$my_variable = "My variable";
return $this->render('index', [
'my_variable' => $my_variable,
]);
}
}
//Обявляем экшен
public function actionSerials()
{
//Для начала отдадим какую нибудь страницу для проверки
//Класс все пока работает! Дальше сделаем запрос сериалов из базы!
//Надо подключить модель
$model = Serial::find()->all();
//Проверим
//var_dump($model);die;
//Теперь нужно отправить в представление нашу переменную
return $this->render('serials', [
'model' => $model, //теперь проверим пришла ли она к нам!
]);
}
public function actionSerialOne($alias_serial)//Надо принять этот параметр alias_serial
{
//Так ссылки у нас готовы) Проверим что к нам приходит АЛИАС
//Щас протестим, интересно
//var_dump($alias_serial);die;
//Теперь на основании этого мы можем показать например Сезоны) Ладно допустим,
//Сейчас такой спорный момент, делать 2 запроса или один. Нам ведь надо узнать id serials чтобы достать сезоны я сделаю одним!
$model = (new \yii\db\Query())
->select([
'vk.season.name name_season',
'vk.season.begin begin_season',
'vk.season.end end_season',
])
->from('vk.serial')
->where(['alias_serial' => $alias_serial])
->leftJoin('vk.season', 'vk.serial.id = vk.season.id_serial')
->all();
//Завтра продолжим)
//Устал
//Провери мчто пришло
//var_dump($model);die;
//Делаю отступы только для того чтобы удобнее было читать код
return $this->render('serial');
}
/**
* Logs in a user.
*
* @return mixed
*/
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
} else {
$model->password = '';
return $this->render('login', [
'model' => $model,
]);
}
}
/**
* Logs out the current user.
*
* @return mixed
*/
public function actionLogout()
{
Yii::$app->user->logout();
return $this->goHome();
}
/**
* Displays contact page.
*
* @return mixed
*/
public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
} else {
Yii::$app->session->setFlash('error', 'There was an error sending your message.');
}
return $this->refresh();
} else {
return $this->render('contact', [
'model' => $model,
]);
}
}
/**
* Displays about page.
*
* @return mixed
*/
public function actionAbout()
{
return $this->render('about');
}
/**
* Signs user up.
*
* @return mixed
*/
public function actionSignup()
{
$model = new SignupForm();
if ($model->load(Yii::$app->request->post())) {
if ($user = $model->signup()) {
if (Yii::$app->getUser()->login($user)) {
return $this->goHome();
}
}
}
return $this->render('signup', [
'model' => $model,
]);
}
/**
* Requests password reset.
*
* @return mixed
*/
public function actionRequestPasswordReset()
{
$model = new PasswordResetRequestForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail()) {
Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
return $this->goHome();
} else {
Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for the provided email address.');
}
}
return $this->render('requestPasswordResetToken', [
'model' => $model,
]);
}
/**
* Resets password.
*
* @param string $token
* @return mixed
* @throws BadRequestHttpException
*/
public function actionResetPassword($token)
{
try {
$model = new ResetPasswordForm($token);
} catch (InvalidParamException $e) {
throw new BadRequestHttpException($e->getMessage());
}
if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
Yii::$app->session->setFlash('success', 'New password saved.');
return $this->goHome();
}
return $this->render('resetPassword', [
'model' => $model,
]);
}
}
Код: Выделить всё
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "serial".
*
* @property string $id
* @property string $name
* @property string $name_original
* @property string $discription
* @property string $genre
* @property int $god
* @property int $nachalo
* @property int $konec
* @property string $status
* @property string $alias_serial
* @property string $img_serial
*/
class Serial extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'serial';
}
public function rules()
{
return [
[['name', 'name_original', 'discription', 'genre', 'god', 'nachalo', 'konec', 'status', 'alias_serial', 'img_serial'], 'required'],
[['discription'], 'string'],
[['god', 'nachalo', 'konec'], 'integer'],
[['name', 'name_original', 'genre', 'status', 'alias_serial', 'img_serial'], 'img_serial' => 255],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Название',
'name_original' => 'Орегинальное Название',
'discription' => 'Описание',
'genre' => 'Жанр',
'god' => 'Год выпуска',
'nachalo' => 'Начало выпуска',
'konec' => 'Конец выпуска',
'status' => 'Статус',
'alias_serial' => 'Alias Seria',
'img_serial' => 'Постер',
];
}
public function upload($model)
{
if($this->validate()){
$source = 'yii\web\UploadedFile;'.'. $this->imageFile->extends';
$this->imageFile->saveAs($source);
return true;
}else{
return false;
}
}
}
Последний раз редактировалось arta2 2018.05.15, 17:35, всего редактировалось 1 раз.
Re: передача в представление
вот ты сюда кинул 500 строк неотформатированного кода. ты серьезно думаешь, что твое нежелание сделать удобно для помогающего сподвигнет его разбираться в коде?
Re: передача в представление
извините забыл перед отправкой просмотреть и до отправки указать
Код: Выделить всё
Re: передача в представление
уважаемые пользователи помогите мне решить и понять данный вопрос,подскажите как разобраться с этим???
Re: передача в представление
Вот заметил такое - если новичек, так делает сайт с фильмами или сериалами Есть же DLE)
Судя по всему, у Вас проблема с версткой.
Киньте скрин, что Вам конкретно не нравится в выводе
https://prnt.sc/jicdkl
Судя по всему, у Вас проблема с версткой.
Киньте скрин, что Вам конкретно не нравится в выводе
https://prnt.sc/jicdkl
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: передача в представление
Вообще прямой ответ такой: в нескольких местах кода представление просто вызывается, без передачи параметров.
Например:
Должно быть
А вообще - это ужас. Нет не так - это УУУУЖЖЖААААСССС! Так писать нельзя, и новичок вы, не новичок без разницы. Есть такой деятель на просторах рунета - М.Ру-ков, вместо дефиса предлог са, вы не по его урокам учились?
Для начала, самое простое - не пишите всё в одном контроллере, контроллер для фильмов - отдельно, для работы с пользователями отдельно. Учите английский будьте внимательны к любой мелочи. Не discription, а description, не nachalo (не помню как точно, но глаз резануло), а start, и т.д. ...
Мелочь, фигня, но с этого все начинается.
Ну и очень много всего еще. Надеюсь вы пишете учебный проект?
Например:
Код: Выделить всё
return $this->render('serial');
Код: Выделить всё
return $this->render('serial', ['model' => $model]);
Для начала, самое простое - не пишите всё в одном контроллере, контроллер для фильмов - отдельно, для работы с пользователями отдельно. Учите английский будьте внимательны к любой мелочи. Не discription, а description, не nachalo (не помню как точно, но глаз резануло), а start, и т.д. ...
Мелочь, фигня, но с этого все начинается.
Ну и очень много всего еще. Надеюсь вы пишете учебный проект?
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: передача в представление
должно быть вот так https://screenshots.firefox.com/GdrW1KS ... uckt.pp.ua
Re: передача в представление
а так вот есть https://prnt.sc/jig211
Re: передача в представление
Код: Выделить всё
<?php var_dump($model);?>
Re: передача в представление
зачем в видах это?
хотя бы в контроллер перенести стоит
Свойства модели можно получить через
или
Где property - название свойства
Код: Выделить всё
$model = Serial::find()
-> where(['alias_serial'=> YII::$app->request->get('alias_serial')])
-> one();
?>
Свойства модели можно получить через
Код: Выделить всё
$model->property;
Код: Выделить всё
$model['property'];
Re: передача в представление
Код: Выделить всё
<?php var_dump($model);?>
Re: передача в представление
Почему?
http://php.net/manual/ru/function.var-dump.php
Я бы рекомендовал
1.Прочесть PHP 7 В подлиннике - Котеров Д.В., Симдянов И.В.;
2.На практике - попробовать написать свой php-движок, мануалов полно.
3. Прочесть полное руководство по Yii2, ну хотя бы для общего понимания, что происходит
Уйдет месяц-два в зависимости от занятости.
И только после этих шагов вернуться к разработке на Yii2.
http://php.net/manual/ru/function.var-dump.php
Я бы рекомендовал
1.Прочесть PHP 7 В подлиннике - Котеров Д.В., Симдянов И.В.;
2.На практике - попробовать написать свой php-движок, мануалов полно.
3. Прочесть полное руководство по Yii2, ну хотя бы для общего понимания, что происходит
Уйдет месяц-два в зависимости от занятости.
И только после этих шагов вернуться к разработке на Yii2.
Re: передача в представление
Был я долгое время без ноутбука - сгорело охлаждение,прошло примерно 2-3 месяца позабывал абсолютно всё,за совет я Вам благодарен можете сбросить мне ссылку где всё это прочесть и подучить???