着信JSONリクエストを保存する必要があるLumenアプリケーションがあります。このようなコードを書いた場合:
public function store(Request $request)
{
if ($request->isJson())
{
$data = $request->all();
$transaction = new Transaction();
if (array_key_exists('amount', $data))
$transaction->amount = $data['amount'];
if (array_key_exists('typology', $data))
$transaction->typology = $data['typology'];
$result = $transaction->isValid();
if($result === TRUE )
{
$transaction->save();
return $this->response->created();
}
return $this->response->errorBadRequest($result);
}
return $this->response->errorBadRequest();
}
それは完全に動作します。ただし、モデルに挿入するためにすべての入力フィールドをチェックする必要があるため、そのモードでRequestを使用するのは退屈です。モデルにリクエストを送信する高速な方法はありますか?
Eloquentモデルに質量を割り当てることができますが、最初に、質量を割り当て可能にするモデルのフィールドを設定する必要があります。モデルで、_$fillable
_配列を設定します。
_class Transaction extends Model {
protected $fillable = ['amount', 'typology'];
}
_
これにより、amount
およびtypology
を一括で割り当て可能になります。つまり、配列を受け入れるメソッド(コンストラクターやfill()
メソッドなど)を介してそれらを割り当てることができます。
コンストラクターの使用例:
_$data = $request->all();
$transaction = new Transaction($data);
$result = $transaction->isValid();
_
fill()
の使用例:
_$data = $request->all();
$transaction = new Transaction();
$transaction->fill($data);
$result = $transaction->isValid();
_
fill
メソッドまたはconstructor
を使用できます。最初に、モデルのfillable
プロパティにすべての質量割り当て可能なプロパティを含める必要があります
方法1(コンストラクターを使用)
$transaction = new Transaction($request->all());
方法2(fill
メソッドを使用)
$transaction = new Transaction();
$transaction->fill($request->all());