Laravel Eloquent ORM插入

问题描述 投票:2回答:2

是否有更短的方式在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对象。但我从另一个对象(肥皂服务器)获取数据。

有没有办法转换这个?也许超过模特?

php laravel eloquent
2个回答
0
投票

你的控制器

假设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方法存储数据,那么您需要在模型上指定fillableguarded属性

class CustomersGsale extends Model 
{
    protected $fillable = [
        'email', 'customerno', 'created', 'company', 'firstname', 'lastname'
    ];
}

0
投票
//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'
    ];
}

试试上面的方法,希望这对你有用。

© www.soinside.com 2019 - 2024. All rights reserved.