、など。(8)言語タグ
のために私は一度の代わりに、アクセサ/ミューテータのカップルを使用して、サブタイプ8言語のすべてのタグモデルで1つのアクセサと1つのミューテータを設定したいと思いますそれぞれの方法について説明します。
通常、それぞれについて以下のことを行います。 tags_en
public function getTagsEnAttribute($tags){
return join(', ', json_decode($tags));
}
public function setTagsEnAttribute($tags){
$this->attributes['tags_en'] =
json_encode(
array_map('trim', explode(',', $tags))
);
}
次に、現実的でない8つの言語のタグの各言語のさまざまなタグに対してそれらを繰り返す必要があります。
私の目的
のようなワイルドカード何かをアクセサとミューテータを行うにはどのような方法(もちろんこれは、このように動作しません):
public function getTagsWildcardAttribute($tags){
return join(', ', json_decode($tags));
}
または
何かlike:
foreach ($tagsAttributes as $TagAttribute){
//method building code for each tags language
}
同様Laravelのアイデアは、私は、ワイルドカードを使用してlaravelモデルクラスを介してそれを行う方法があるかもしれないことを前提とし、ワイルドカード
と検証のために存在します。これは、このような配列の各要素を検証できる検証のようになります。
$validator = Validator::make($request->all(), [
'person.*.email' => 'email|unique:users',
'person.*.first_name' => 'required_with:person.*.last_name',
]);
質問:
- これらのモデルは、ワイルドカードでのアクセサとミューテータが利用できない場合現在のlaravelフレームワークで - これは価値があると私に同意しますか次のlaravelのバージョンでは?
- もしそうならば、次のバージョンで正式にこれを考慮する方法を教えてください?
- 私たちに代わってスタッフがその改善のためにlaravelビルダーに質問することができますか?
アクセサーとミューテータが必要ですか?あなたはモデルのメソッドだけではできないreasongはありますか? – tptcat
私は、モデルに利用可能なlaravelフレームワークメソッドを、ホイールを再作成するよりも使用する方が好きです。もちろん、laravel Modelクラスを使って行うことができると仮定します。これはValidatorに似ています。 $ validator = Valid($ request-> all()、[ 'person。*。email' => 'email | unique :ユーザー '、 ' person。*。first_name '=>' required_with:person。*。last_name '、 ]); – WillKoz
私はちょっと混乱しています:あなたは実際にこれらをdb: 'tags_en'、' tags_es'などの列としてすべて持っていますか?あるいは、 'tags'という名前のJSON列を1つだけ持っていますか? – tptcat