1
我需要为相关模型设置属性为安全模式。我使用翻译关系的搜索模型。在那里,我想将title属性设置为安全。在Yii2中为相关模型设置属性安全
问题在于title属性在相关的ArticleTranslation模型中是必需的。
我使用creocoder的yii2可翻译行为。
class ArticleSearch extends Article
{
public function rules()
{
return [
[['id', 'user_id', 'status', 'category_id', 'created_at', 'updated_at'], 'integer'],
[['title', 'summary', 'content'], 'safe'],
];
}
/**
* @inheritdoc
*/
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)
{
// $this->detachBehaviors();
$query = Article::find();
$query->joinWith(['translations']);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
if ($this->load($params) && !$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,
'user_id' => $this->user_id,
'status' => $this->status,
'category_id' => $this->category_id,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
]);
$query->andFilterWhere(['like', 'article_translation.title', $this->title])
->andFilterWhere(['like', 'article_translation.summary', $this->summary])
->andFilterWhere(['like', 'content', $this->content]);
return $dataProvider;
}
}
谢谢。这是工作。 –
好,如果我的答案是正确的,请将其标记为已接受...看看这里如何 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge