Я только что начал изучать Yii2 и сразу столкнулся с недопониманием того, как выводить результат запроса к базе во view. Создал таблицу post и пытаюсь вытянуть из нее массив данных. Вроде все логично но не работает.
Модель: localhost\yii2-basic\models\Post.php
namespace app\models;
use yii\db\ActiveRecord;
class Post extends ActiveRecord
{
public static function tableName()
{
return 'post';
}
}
Контроллер: localhost\yii2-basic\controllers\PostController.php
namespace app\controllers;
use yii\web\Controller;
use app\models\Post;
class PostController extends Controller
{
public function actionIndex(){
$posts = Post::find()->all();
return $this->render('index', compact('posts'));
}
}
Вьюха: localhost\yii2-basic\views\post\index.php
var_dump($posts);
При попытке вывода, phpstorm уже тебе говорит что эта переменная $posts
не объявлена и подчеркивает ее. Почему так происходит? Вроде контроллер должен ее рендерить во вью, но этого не происходит. Подскажите почему так происходит?
Шторм подчеркивает переменную во вьюхе потому что ему неизвестно какие переменные переданы во вьюху. Чтобы шторму подсказать, можно добавить комментарий в самом начале файла.
/**
* @var $this yii\web\View
* @var $posts array
*/
Теперь, если будем использовать другие вьюхи в текущей, то шторм будет знать, что $this это объект View и выдаст подсказки. Также не будет "ругаться" на переменную $posts.
Чтобы узнать почему вьюха не выводит ничего, надо в контроллере проверить, что приходит в переменную.
namespace app\controllers;
use yii\web\Controller;
use app\models\Post;
class PostController extends Controller
{
public function actionIndex(){
$posts = Post::find()->all();
var_dump($posts); // смотрим, что в переменной до вьюхи.
return $this->render('index', compact('posts'));
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У нас в проекте установлен композер и подключен autoload по psr-4
Каждый раз по вызывании второго метода передается html без стилейМожете сказать это с чем связано
Какие могут быть способы оптимизировать вот такой вот подзапрос в left join?