Yii Framework Исключение неизвестного свойства

Я знаю, что это может показаться тривиальным, но я действительно не могу понять это. Я начинаю разрабатывать приложение базы данных, используя Yii Framework и MySQL. Я попробовал следовать простому базовому уроку:
http://www.yiiframework.com/doc-2.0/guide-start-databases.html
, но я использовал свой собственный стол «Супермаркеты».
Я получаю эту ошибку:

Неизвестное свойство — yii \ base \ UnknownPropertyException
Получение неизвестного свойства: app \ models \ Supermarkets :: name

Очевидно, что метод get (‘name’) вызывает эту ошибку, но я не знаю, как это исправить.

Это мой код:

…модели / supermarkets.php:

<?php

namespace app\models;

use yii\db\ActiveRecord;

class Supermarkets extends ActiveRecord
{}

…Контроллеры / SupermarketsController.php:

<?php

namespace app\controllers;

use yii\web\Controller;
use yii\data\Pagination;
use app\models\Supermarkets;

class SupermarketsController extends Controller
{
public function actionIndex()
{
$query = Supermarkets::find();

$pagination = new Pagination([
'defaultPageSize' => 5,
'totalCount' => $query->count(),
]);

$supermarkets = $query->orderBy('name')
->offset($pagination->offset)
->limit($pagination->limit)
->all();

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

…просмотров / Супермаркеты / index.php:

<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1>Supermarkets</h1>
<ul>
<?php foreach ($supermarkets as $supermarket): ?>
<li>
<?= $supermarket->name?>
<?= $supermarket->location ?>
<?= $supermarket->telephone ?>
<?= $supermarket->fax ?>
<?= $supermarket->website ?>
</li>
<?php endforeach; ?>
</ul>

<?= LinkPager::widget(['pagination' => $pagination]) ?>

Supermarkets.db:

CREATE TABLE IF NOT EXISTS `supermarkets` (
`Name` varchar(71) NOT NULL,
`Location` varchar(191) DEFAULT NULL,
`Telephone` varchar(68) DEFAULT NULL,
`Fax` varchar(29) DEFAULT NULL,
`Website` varchar(24) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Любые предложения, пожалуйста?

3

Решение

Может быть, вы проиграете в модели Supermarkets:

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

Если вы не установите метод, имя таблицы по умолчанию будет supermarkets, Потому что в yii\db\ActiveRecord задавать:

public static function tableName()
{
return '{{%' . Inflector::camel2id(StringHelper::basename(get_called_class()), '_') . '}}';
}

РЕДАКТИРОВАТЬ

Используйте удалить это из вашей модели

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

И использовать

<?= $supermarket->Name?>
<?= $supermarket->Location ?>
<?= $supermarket->Telephone ?>
<?= $supermarket->Fax ?>
<?= $supermarket->Website ?>

Или лучше. Используйте свой первый код. И изменить столбцы -> установить маленькую первую букву. Как это

CREATE TABLE IF NOT EXISTS `supermarkets` (
`name` varchar(71) NOT NULL,
`location` varchar(191) DEFAULT NULL,
`telephone` varchar(68) DEFAULT NULL,
`fax` varchar(29) DEFAULT NULL,
`website` varchar(24) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]