2016-10-16 6 views
0

Yii2。どのようにして関連テーブルからデータを取得し、それを差し替え可能な動作に追加できますか? 以下の例では、すべての書籍が「Book House、author Greenberg」のようなslug-titleを追加したいと考えています。Yii2- Sluggableに追加する関連テーブル名から取得

public function behaviors() 
{ 
    return [ 
     [ 
      'class'=>SluggableBehavior::className(), 
      'value'=>function ($event) { 
       $parts = ['Book', $this->name, 'author', $this->author->name]; 
       return Inflector::slug(implode('-', $parts)); 
      }, 
     ], 
    ]; 
} 

私の例の出力は以下となります。このようなスラグ:あなたのバージョンよりナメクジのためのより多くのベストプラクティスであるbook-house-author-greenberg

class Books extends \yii\db\ActiveRecord 
{ 

    public function behaviors() 
    { 
     return [ 
      [ 
       'class' => SluggableBehavior::className(), 
       'attribute' => "Book" . $this->name . ", author " . $this->getAuthor->name, 
      //'slugAttribute' => 'slug', 
      ], 
     ]; 
    } 
    public function getAuthor() 
    { 
     return $this->hasOne(Author::className(), ['id' => 'author_id']); 
    } 
} 
+0

あなたは、関連するテーブルによって何を意味していますか。あなたの正確な必要性は何ですか?あなたは何の問題を抱えていますか?titleと呼ばれる属性が必要です。あなたの質問に詳細を追加してください。 –

答えて

0

は単純にそうようなSluggableビヘイビアのためのコールバックを使用します。とにかく...あなたが上記の方法を好むなら、戻り値を変更するだけです。

私の例で使用されている機能のドキュメントはhereです。

関連する問題