欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

laravel 保存到数据库的方法 有哪些 save insert create update 有区别吗 有大用

shiping1 的头像
laravel 保存到数据库的方法  有哪些 save insert create update 有区别吗 有大用 
save方法
一般是 返回true 如果是通过外键保存就是返回外键的对像

insert应该是实例的方法吧(好像是类方法)
create是类方法
update也是实例方法 
create()方法,是新建一条数据,然后返回这个实例,拿到实例后还可以进行修改并保存等工作,
$user = User::create($loginuserdata); // $loginuserdata 这是键值对数组

$insertedId = $user->id; //这就可以得到 $user的id了
insert()方法,就是插入一条数据,返回新数据的id值,并不会返回实例。
 insert应该是实例的方法吧
create是类方法
update也是实例方法
【英雄】灬破丨曉丶(2484461866) 2016/4/23 14:20:55
insert 可以插入多条,create只能一条 好像也有这区别 




1) save方法   这种方法 能插入数据库 也能更新数据库
public function update(Request $request,$id)
{
    $this->validate($request, [
        'title' => 'required|unique:pages,title,'.$id.'|max:255',
        'body' => 'required',
    ]);

    $page = Page::find($id);
    $page->title = Input::get('title');
    $page->body = Input::get('body');
    $page->user_id = 1;//Auth::user()->id;

    if ($page->save()) {
        return Redirect::to('admin');
    } else {
        return Redirect::back()->withInput()->withErrors('保存失败!');
    }
}
save 方法 使用的时候 不必在模型中指定 可以 填充的字段 自动保存 updated_at 和 created_at
  1. updated_at: "2015-08-02 00:34:40",
  2. created_at: "2015-08-02 00:34:40",
save 是引用指向的还是本身对象
public function update(Request $request,$id)
{
    $this->validate($request, [
        'title' => 'required|unique:pages,title,'.$id.'|max:255',
        'body' => 'required',
    ]);

    $page = Page::find($id);
    $page->title = Input::get('title');
    $page->body = Input::get('body');
    $page->user_id = 1;//Auth::user()->id;

    if ($page->save()) {
        return Redirect::to('admin');
    } else {
        return Redirect::back()->withInput()->withErrors('保存失败!');
    }
}
2)create方法
public function store()
{
    // create里的参数是数组
    if (Comment::create(Input::all())) {
        return Redirect::back();
    } else {
        return Redirect::back()->withInput()->withErrors('评论发表失败!');
    }
}




//  create里的参数是数组
>>> $article = App\Article::create(['title' => 'New Article', 'body' => 'New Body', 'published_at' => Carbon\Carbon::now()]);
Illuminate\Database\Eloquent\MassAssignmentException with message 'title'

//上面会抛出 MassAssignmentException 异常
所以 create 方法 使用的时候 必须在模型中指定 可以 填充的字段 ($fillable  包含,  $guarded 排除
而save 方法 ($fillable,$guarded 对于save 方法却不起作用 )
自动保存 updated_at 和 created_at
  1. updated_at: "2015-08-02 00:34:40",
  2. created_at: "2015-08-02 00:34:40",

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Article extends Model {

    protected $fillable = [
        'title',
        'body',
        'published_at'
    ];

}

$guarded 是排除 与 $fillable 相反 

4)insert 也是数组吧


public function run()
   {
      $data = array(
         array('people_id' => '1', 'movie_id' => '1', 'job' => '演员'),
         array('people_id' => '2', 'movie_id' => '1', 'job' => '演员'),
         array('people_id' => '3', 'movie_id' => '1', 'job' => '演员'),
         array('people_id' => '4', 'movie_id' => '1', 'job' => '演员')

      );

      DB::table('movie_people')->insert($data);
   }
}

5)delete
DB::table('authors')->delete();

public function destroy($id)
{
$page = Page::find($id);
$page->delete();
 
return Redirect::to('admin');
}

6)update 这种方法 能更新数据库



update 是引用指向的还是本身对象 update(参数是数组)
  1. public function update(Article $article, ArticleRequest $request){
  2. $article->update($request->all());
  3. $this->syncTags($article, $request->input('tag_list'));
  4. return redirect('articles');
  5. }


$input = [    
    'title'=>'test 6 title',
    'content'=>'test content 6',
    'cat_id'=>1,
    'views'=>200,
    'user_id'=>1
];
$post = Post::find(6);
if($post->update($input)){
    echo '更新文章成功!';
    dd($post);
}else{
    echo '更新文章失败!';
}

7) insert 好像是二维数组 批理插入 保存

$data = array(
    array('orig_url'=> 'http://3g.4000512126.com/test.html', 'user_id'=>1, 'local_url'=>'http://mygn.4006363560.com/a/4000512126/test.html',   'xuanfu_tu'=>'/uploads/0dd04725d20a1a77f44bb61b8d2dfb3e.jpg', 'bottombu_tu'=>'', 'xuanfu_tel'=>'4000512126', 'xuanfu_url'=>'http://4000512126.com', 'bottombu_tu'=>'', 'bottombu_url'=>'http://4000512126.com', 'bottombu_tel'=>''), 
array('orig_url'=> 'http://3g.4000512126.com/test.html', 'user_id'=>1, 'local_url'=>'http://mygn.4006363560.com/a/4000512126/test.html', 'xuanfu_tu'=>'/uploads/f54f98a3230af7a41b4e8998483318e2.jpg', 'bottombu_tu'=>'', 'xuanfu_tel'=>'4000512126', 'xuanfu_url'=>'http://4000512126.com', 'bottombu_tu'=>'', 'bottombu_url'=>'http://4000512126.com', 'bottombu_tel'=>'')
)

 DB::table('nets')->insert($data);
 

普通分类: