我需要知道laravel 5中create()
和save()
函数的区别。
我们可以在哪里使用create()
和Option Explicit
Sub main()
Dim area As Range
Dim strng As String
Dim iRow As Long, startRow As Long, endRow As Long, iCol As Long
With Worksheets("Export") '<--| change "Export" with your actual sheet name
With .Range("A2:A" & .UsedRange.Rows(.UsedRange.Rows.Count).row).SpecialCells(xlCellTypeBlanks)
For Each area In .Areas
strng = ""
startRow = area.End(xlUp).row
endRow = area.Rows(area.Rows.Count).row
iCol = area.End(xlToRight).Column
For iRow = startRow To endRow
strng = strng & .Parent.Cells(iRow, iCol) & " "
Next iRow
.Parent.Cells(startRow, iCol) = strng
Next area
.EntireRow.Delete
End With
End With
End Sub
?
答案 0 :(得分:23)
Model::create
是$model = new MyModel(); $model->save()
的简单包装器
请参阅实施
/**
* Save a new model and return the instance.
*
* @param array $attributes
* @return static
*/
public static function create(array $attributes = [])
{
$model = new static($attributes);
$model->save();
return $model;
}
保存()强>
save()方法用于保存新模型和更新 现有的。在这里你要创建新模型或找到现有模型, 逐个设置其属性,最后保存在数据库中。
save()接受完整的Eloquent模型实例
$comment = new App\Comment(['message' => 'A new comment.']);
$post = App\Post::find(1);`
$post->comments()->save($comment);
创建()强>
create()接受普通 PHP数组
$post = App\Post::find(1);
$comment = $post->comments()->create([
'message' => 'A new comment.',
]);
修改强>
正如@PawelMysior指出的那样,在使用create方法之前,请务必
要标记通过质量分配可以安全设置值的列(例如name,birth_date等),我们需要通过提供一个名为$ fillable的新属性来更新我们的Eloquent模型。这只是一个数组,其中包含可通过质量分配安全设置的属性名称:
例如: -
class Country扩展Model {
protected $fillable = [
'name',
'area',
'language',
];
}
答案 1 :(得分:0)
如果您要寻找简短的答案,请在laravel文档中找到
除了save
和saveMany
方法之外,您还可以使用 create
方法,该方法接受属性数组,创建模型并将其插入到数据库。
同样,save
和create
之间的差异是
save
接受完整的Eloquent模型实例
而 create
接受纯PHP数组:
$post = App\Post::find(1);
$comment = $post->comments()->create([
'message' => 'A new comment.',
]);
如果您要查找详细信息,请参阅@Tony Vincent的答案。