The first code example, creates an instance of the class and takes the data passed and writes
//instancia uma classe Produto
//método atribui os valores configurados no fillable
//grava um novo registro na sua tabela e desenvolve uma instância desse registro
Product::create($request->all());
The other way is to assign new values to nonexistent or existing data, that is, the second code can be used to save a new record or even change data from a record that already exists, finally calling the save()
, example
$product = new Product();
$product->fill($request->all());
$product->save();
or
// buscando registro de número 1
$product = Produto::find(1)
// verificando se encontrou o produto
if ($produto)
{
//atribuindo novos valores ou apenas alguns valores
$product->fill($request->all());
}
// salvando os dados passados
$product->save();
Note that the fill
method only accepts the values set in fillable
, but it is not necessary to pass all the values and only the values passed are inserted or inserted and also the values passed by this method does not guarantee that the data will be saved, because you should finally call the save()
method.
In the same line as the create
that already does the creation of a new record at once, it has the update
method, which has the purpose of assigning the values and soon after saving the changes, for example:
// buscando registro de número 1
$product = Produto::find(1)
// verificando se encontrou o produto
if ($produto)
{
//atribuindo novos valores ou apenas alguns valores
// e salvando as alterações (sem precisa chamar método save())
$product->update($request->all());
}