2016-08-09 9 views

答えて

12

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; 
} 

実装を参照してくださいです)

  • (保存)メソッドは、新しいモデルを保存し、 を更新するための両方に使用されます既存のもの。ここで新しいモデルを作成したり、既存のモデルを見つけたり、 のプロパティを1つずつ設定してデータベースに保存します。 (保存

  • は)であなたがプロパティを設定し、配列を渡す方法を作成しながら、

    • )(作成

      $comment = new App\Comment(['message' => 'A new comment.']); 
      
      $post = App\Post::find(1);` 
      
      $post->comments()->save($comment); 
      


    フル雄弁モデルのインスタンスを受け入れます モデルであり、ワンショットでデータベースに保持されます。

  • は(作成)@PawelMysiorが指摘したように、メソッドを作成し使用する前に、その値を設定しても安全である列をマークする に必ず無地 PHPアレイ

    $post = App\Post::find(1); 
    
    $comment = $post->comments()->create([ 
        'message' => 'A new comment.', 
    ]); 
    

    EDIT
    を受け付け(名前、birth_dateなどのような)代入を介して、$ fillableという新しいプロパティを提供することによってEloquentモデルを更新する必要があります。これは、単に大量の割り当てを使って設定しても安全な属性の名前を含む配列である: 例: -

    クラス国はモデルあなたのための{

    protected $fillable = [ 
        'name', 
        'area', 
        'language', 
        ]; 
    

    }

+0

感謝を拡張します返事、しかし、あなたは私にもっと凝ってくれますか?私はLaravelの文書を読んでいたが、そこから多くのアイデアは得られなかった。 –

+0

詳細をお寄せいただきありがとうございます。 –

+4

ここで注意すべき重要な点は、 'create()'を使用する場合は、渡すすべての属性をモデルの '$ fillable'属性にリストする必要があります。 See:https://laravel.com/docs/master/eloquent#mass-assignment – PawelMysior

関連する問題

 関連する問題