7 json model request laravel lumen
我有一个流明应用程序,我需要存储传入的JSON请求.如果我写这样的代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
它完美地运作.但是在该模式下使用Request很无聊,因为我必须检查每个输入字段以将它们插入到我的模型中.有没有快速的方式向模型发送请求?
pat*_*cus 14
您可以对Eloquent模型进行质量分配,但是您需要首先在模型上设置要允许批量分配的字段.在您的模型中,设置您的$fillable数组:
class Transaction extends Model {
protected $fillable = ['amount', 'typology'];
}
Run Code Online (Sandbox Code Playgroud)
这将允许amount和typology可以批量分配.这意味着您可以通过接受数组的方法(例如构造函数或fill()方法)来分配它们.
使用构造函数的示例:
$data = $request->all();
$transaction = new Transaction($data);
$result = $transaction->isValid();
Run Code Online (Sandbox Code Playgroud)
使用示例fill():
$data = $request->all();
$transaction = new Transaction();
$transaction->fill($data);
$result = $transaction->isValid();
Run Code Online (Sandbox Code Playgroud)
你可以使用fill方法或constructor.首先,您必须在fillable模型的属性中包含所有可指定质量的属性
方法1(使用构造函数)
$transaction = new Transaction($request->all());
Run Code Online (Sandbox Code Playgroud)
方法2(使用fill方法)
$transaction = new Transaction();
$transaction->fill($request->all());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17636 次 |
| 最近记录: |