You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@return ActiveDataProvider
*/
public function search($params)
{
//->multilingual()
$query = Category::find()->joinWith('translations');
// add conditions that should always apply here
$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;
}
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\behaviors\BlameableBehavior;
use omgdef\multilingual\MultilingualBehavior;
use omgdef\multilingual\MultilingualQuery;
use yii\web\UploadedFile;
public static function getParentCategoryOptions($ignore_ids = []) {
$options = [];
$categories = Category::find()->where('parent_id is null')->andWhere(['not in','id',$ignore_ids])->all();
if (count($categories) > 0) {
foreach ($categories as $category) {
$options[$category->id] = $category->name ? $category->name : Yii::t('yii','(not set)');
}
}
return $options;
}
public function beforeSave($insert) {
$result = true;
if (parent::beforeSave($insert)) {
$this->image_id = UploadedFile::getInstance($this,'image_id');
if(is_object($this->image_id)){
$path = $this->getImagePath(); //set directory path to save image
if (!is_dir($path)) {
$image_path = \yii\helpers\FileHelper::createDirectory($path,0777,true);
}
Please help me, i often got this error. But sometime it run ok, i dont know what happens.
Getting unknown property: app\models\CategorySearch::name
table category
Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created_by | int(11) | YES | MUL | NULL | |
| created_at | int(11) | YES | | NULL | |
| updated_by | int(11) | YES | MUL | NULL | |
| updated_at | int(11) | YES | | NULL | |
| status | smallint(6) | YES | | 1 | |
| parent_id | int(11) | YES | MUL | NULL |
table category_translation
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created_by | int(11) | YES | MUL | NULL | |
| created_at | int(11) | YES | | NULL | |
| updated_by | int(11) | YES | MUL | NULL | |
| updated_at | int(11) | YES | | NULL | |
| language | varchar(6) | NO | MUL | NULL | |
| category_id | int(11) | NO | MUL | NULL | |
| name | varchar(255) | YES | | NULL | |
| slug | varchar(255) | YES | MUL | NULL | |
| description | longtext | YES | | NULL | |
| image_id | int(11) | YES | MUL | NULL | |
+-------------+--------------+------+-----+---------+----------------+
`<?php
namespace app\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use common\models\Category;
/**
CategorySearch represents the model behind the search form about
common\models\Category
./
class CategorySearch extends Category
{
/*
*/
public function rules()
{
return [
[['id', 'status', 'parent_id'], 'integer'],
[['name', 'slug', 'image_id'], 'safe']
];
}
/**
*/
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
/**
Creates data provider instance with search query applied
*
@param array $params
*
@return ActiveDataProvider
*/
public function search($params)
{
//->multilingual()
$query = Category::find()->joinWith('translations');
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['attributes'=>['id', 'status', 'parent_id', 'name', 'slug', 'image_id', 'updated_at']],
'pagination' => [
'pageSize' => 1000,
],
]);
$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([
'id' => $this->id,
'category_translation.name'=>$this->name,
'category_translation.slug'=>$this->slug,
'category_translation.image_id'=>$this->image_id,
'status' => $this->status,
'parent_id' => $this->parent_id,
'updated_at' => $this->updated_at,
]);
return $dataProvider;
}
}`
`<?php
namespace common\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\behaviors\BlameableBehavior;
use omgdef\multilingual\MultilingualBehavior;
use omgdef\multilingual\MultilingualQuery;
use yii\web\UploadedFile;
/**
This is the model class for table "category".
*
@Property integer $id
@Property integer $created_by
@Property integer $created_at
@Property integer $updated_by
@Property integer $updated_at
@Property integer $status
@Property integer $parent_id
*
@Property User $createdBy
@Property Category $parent
@Property Category[] $categories
@Property User $updatedBy
@Property CategoryTranslation[] $categoryTranslations
@Property Product[] $products
/
class Category extends \yii\db\ActiveRecord
{
const STATUS_ACTIVE = 10;
const STATUS_UNACTIVE = 11;
/*
*/
public static function tableName()
{
return 'category';
}
public function behaviors()
{
return [
TimestampBehavior::className(),
BlameableBehavior::className(),
'ml' => [
'class' => MultilingualBehavior::className(),
'languages' => Yii::$app->params['languages'],
//'languageField' => 'language',
//'localizedPrefix' => '',
// 'requireTranslations' => true,
// 'dynamicLangClass' => true,
// 'defaultLanguage' => Yii::$app->params['defaultLanguage'],
'langClassName' => CategoryTranslation::className(), // or namespace/for/a/class/PostLang
'langForeignKey' => 'category_id',
'tableName' => "{{%category_translation}}",
'attributes' => [
'name', 'slug', 'description', 'image_id'
]
],
];
}
/**
*/
public function rules()
{
return [
[['created_by', 'created_at', 'updated_by', 'updated_at', 'status', 'parent_id'], 'integer'],
[['name','code'], 'required'],
[['description'], 'string'],
[['name', 'slug'], 'string', 'max' => 255],
[['image_id'], 'safe'],
[['created_by'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['created_by' => 'id']],
[['parent_id'], 'exist', 'skipOnError' => true, 'targetClass' => Category::className(), 'targetAttribute' => ['parent_id' => 'id']],
[['updated_by'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['updated_by' => 'id']],
];
}
/**
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'created_by' => Yii::t('app', 'Created By'),
'created_at' => Yii::t('app', 'Created At'),
'updated_by' => Yii::t('app', 'Updated By'),
'updated_at' => Yii::t('app', 'Updated At'),
'status' => Yii::t('app', 'Status'),
'parent_id' => Yii::t('app', 'Parent ID'),
'code' => Yii::t('app', 'Code'),
'name' => Yii::t('app', 'Name'),
'slug' => Yii::t('app', 'Slug'),
'description' => Yii::t('app', 'Description'),
'image_id' => Yii::t('app', 'Image ID'),
];
}
/**
*/
public function getCreatedBy()
{
return $this->hasOne(User::className(), ['id' => 'created_by']);
}
/**
*/
public function getParent()
{
return $this->hasOne(Category::className(), ['id' => 'parent_id']);
}
/**
*/
public function getCategories()
{
return $this->hasMany(Category::className(), ['parent_id' => 'id']);
}
/**
*/
public function getUpdatedBy()
{
return $this->hasOne(User::className(), ['id' => 'updated_by']);
}
/**
*/
public function getCategoryTranslations()
{
return $this->hasMany(CategoryTranslation::className(), ['category_id' => 'id']);
}
/**
*/
public function getProducts()
{
return $this->hasMany(Product::className(), ['category_id' => 'id']);
}
/**
*/
public function getImage()
{
return $this->hasOne(File::className(), ['id' => 'image_id']);
}
public static function find()
{
return new MultilingualQuery(get_called_class());
}
public static function getStatusOptions() {
return [
self::STATUS_ACTIVE => Yii::t('app','Active'),
self::STATUS_UNACTIVE => Yii::t('app','Unactive')
];
}
public function getStatusLabel() {
$statusOptions = self::getStatusOptions();
return isset($statusOptions[$this->status]) ? $statusOptions[$this->status] : 'Unknown';
}
public function getImagePath() {
return Yii::getAlias('@root') . '/data/images/category/';
}
public function getImageUrl() {
return '/data/images/category/' . $this->image->name;
}
public static function getCategoryRecuisiveOptions(&$options = [], $parent_id = 0, $dept = 0, $char = '--') {
if ($parent_id > 0) {
$categories = Category::find()->where(['parent_id'=>$parent_id])->all();
if (count($categories) > 0) {
foreach ($categories as $category) {
$options[$category->id] = str_repeat($char, $dept) . ' ' . ($category->name ? $category->name : Yii::t('yii','(not set)'));
self::getCategoryRecuisiveOptions($options, $category->id, $dept + 1, $char);
}
}
} else {
if ($dept == 0) {
$categories = Category::find()->where('parent_id is null')->all();
if (count($categories) > 0) {
foreach ($categories as $category) {
$options[$category->id] = $category->name ? $category->name : Yii::t('yii','(not set)');
self::getCategoryRecuisiveOptions($options, $category->id, $dept + 1, $char);
}
}
}
}
return $options;
}
public static function getParentCategoryOptions($ignore_ids = []) {
$options = [];
$categories = Category::find()->where('parent_id is null')->andWhere(['not in','id',$ignore_ids])->all();
if (count($categories) > 0) {
foreach ($categories as $category) {
$options[$category->id] = $category->name ? $category->name : Yii::t('yii','(not set)');
}
}
return $options;
}
public function beforeSave($insert) {
$result = true;
if (parent::beforeSave($insert)) {
$this->image_id = UploadedFile::getInstance($this,'image_id');
if(is_object($this->image_id)){
$path = $this->getImagePath(); //set directory path to save image
if (!is_dir($path)) {
$image_path = \yii\helpers\FileHelper::createDirectory($path,0777,true);
}
}
}`
`<?php
namespace common\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\behaviors\SluggableBehavior;
use yii\behaviors\BlameableBehavior;
/**
This is the model class for table "category_translation".
*
@Property integer $id
@Property integer $created_by
@Property integer $created_at
@Property integer $updated_by
@Property integer $updated_at
@Property string $language
@Property integer $category_id
@Property string $name
@Property string $slug
@Property string $description
@Property integer $image_id
*
@Property Category $category
@Property User $createdBy
@Property File $image
@Property User $updatedBy
/
class CategoryTranslation extends \yii\db\ActiveRecord
{
/*
*/
public static function tableName()
{
return 'category_translation';
}
/**
*/
public function behaviors()
{
return [
TimestampBehavior::className(),
BlameableBehavior::className(),
[
'class' => SluggableBehavior::className(),
'attribute' => 'name',
'immutable' => true,
'ensureUnique'=>true
],
];
}
/**
*/
public function rules()
{
return [
[['created_by', 'created_at', 'updated_by', 'updated_at', 'category_id', 'image_id'], 'integer'],
[['language', 'category_id'], 'required'],
[['description'], 'string'],
[['language'], 'string', 'max' => 6],
[['name', 'slug'], 'string', 'max' => 255],
[['category_id'], 'exist', 'skipOnError' => true, 'targetClass' => Category::className(), 'targetAttribute' => ['category_id' => 'id']],
[['created_by'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['created_by' => 'id']],
[['image_id'], 'exist', 'skipOnError' => true, 'targetClass' => File::className(), 'targetAttribute' => ['image_id' => 'id']],
[['updated_by'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['updated_by' => 'id']],
];
}
/**
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'created_by' => Yii::t('app', 'Created By'),
'created_at' => Yii::t('app', 'Created At'),
'updated_by' => Yii::t('app', 'Updated By'),
'updated_at' => Yii::t('app', 'Updated At'),
'language' => Yii::t('app', 'Language'),
'category_id' => Yii::t('app', 'Category ID'),
'name' => Yii::t('app', 'Name'),
'slug' => Yii::t('app', 'Slug'),
'description' => Yii::t('app', 'Description'),
'image_id' => Yii::t('app', 'Image ID'),
];
}
/**
*/
public function getCategory()
{
return $this->hasOne(Category::className(), ['id' => 'category_id']);
}
/**
*/
public function getCreatedBy()
{
return $this->hasOne(User::className(), ['id' => 'created_by']);
}
/**
*/
public function getImage()
{
return $this->hasOne(File::className(), ['id' => 'image_id']);
}
/**
*/
public function getUpdatedBy()
{
return $this->hasOne(User::className(), ['id' => 'updated_by']);
}
}`
The text was updated successfully, but these errors were encountered: