是否有更短的方式在Laravel中插入Eloquent ORM中的数据?
目前我正是这样做的:
$newCustomerGsale = new CustomersGsale();
$newCustomerGsale->email = $gsalesCustomer->getEmail();
$newCustomerGsale->customerno = $gsalesCustomer->getCustomerNumber();
$newCustomerGsale->created = $gsalesCustomer->getCreated();
$newCustomerGsale->company = $gsalesCustomer->getCompany();
$newCustomerGsale->firstname = $gsalesCustomer->getFirstname();
$newCustomerGsale->lastname = $gsalesCustomer->getLastname();
$newCustomerGsale->save();
就像你看到的所有列都被命名为属性。
我知道你可以使用带有all()函数和fetch()的$request
对象。但我从另一个对象(肥皂服务器)获取数据。
有没有办法转换这个?也许超过模特?
你的控制器
假设CustomersGsale
是你的模特
public function store(CustomersGsaleFormRequest $request)
{
CustomersGsale::create($request->all());
}
CustomersGsaleFormRequest.php
Laravel Form Requests Validation
public function rules()
{
return [
'email' => 'required|email',
'customerno' => 'required',
'created' => 'required',
'company' => 'required',
'firstname' => 'required'
];
}
CustomersGsale.php
模型
您的属性和列应该相同。如果您使用create
方法存储数据,那么您需要在模型上指定fillable
或guarded
属性
class CustomersGsale extends Model
{
protected $fillable = [
'email', 'customerno', 'created', 'company', 'firstname', 'lastname'
];
}
//MyControllerClass
public function store(myCustomValidator $request){
CustomersGsale::insert($request->all());
}
//myCustomValidator class
public function rules(): array
{
return [
'email' => 'required|numeric',
'customerno' => 'required',
'created' => 'required',
'company' => 'required',
'firstname' => 'required'
'lastname' => 'nullable'
];
}
试试上面的方法,希望这对你有用。