Laravel 7 + mongodb 、CRUDの作成 #mongodb #php #Laravel #doker #React


■ 概要:

前のmongodb + Laravel+ docker関連となり
Laravel 7 で CRUD のメモとなります。

・PECL mongoドライバ、docker設定は、前の記事と同様となります

■ 環境

mongoDb:
php-fpm : 7.3
Laravel : 7.29
PECL mongodb : 1.9
nginx
React 16

■ 参考
https://docs.mongodb.com/php-library/

■ 参考のコード

■ 実装など

・create
app/Http/Controllers/TasksController.php

public function create()
   {
       return view('tasks/create')->with('task',  null);
   }     
  /**************************************
    *
    **************************************/    
   public function store(Request $request)
   {
       $data = $request->all();
       var_dump( $data["title"] );        
       var_dump( $data["content"] ); 
       $collection = $this->db->tasks;
       $result = $collection->insertOne( [
           'title' => $data["title"], 
           'content' => $data["content"], 
      ]);              
       return redirect()->route('tasks.index');
   } 

・Update

/**************************************
    *
    **************************************/
   public function edit($id)
   {
       $collection = $this->db->tasks;
       $task = $collection->findOne(
           ["_id"=>new ObjectID($id)]
       ); 
//var_dump($task["_id"] );       
       return view('tasks/edit')->with([
           'task'=>$task, 'task_id'=>$id
       ]);
   }
   /**************************************
    *
    **************************************/
   public function update(Request $request, $id)
   {
       $collection = $this->db->tasks;
       $data = $request->all();
       $new_item = array('$set' => array("title" => $data["title"] ));
       $result = $collection->updateOne(
           array("_id"=>new ObjectID( $id ) ),
           $new_item
       );
       return redirect()->route('tasks.index');
   }

・delete

    /**************************************
    *
    **************************************/
   public function destroy($id)
   {
// var_dump( $id );
       $collection = $this->db->tasks;
       $result = $collection->deleteOne(
           array("_id"=>new ObjectID( $id ) )
       );
       return redirect()->route('tasks.index');
   } 

・index, api
app/Http/Controllers/ApiTasksController.php

    public function get_tasks()
   {   
       $collection = $this->db->tasks;
       $result = $collection->find();
       $items = [];    
       foreach ($result as $entry) {
           $items[] = $entry;
//            var_dump($entry["_id"]);
       }
       return response()->json($items);
   }


■​ リストの画面

画像1


■ 関連のページ

php + mongodb のdocker環境の作成 #mongodb #php #docker
https://note.com/knaka0209/n/n7b4cdce17ddd

Laravel 7 + mongodb 、検索する事例 #mongodb #php #Laravel
https://note.com/knaka0209/n/ndf839f2f7cfe



...


いいなと思ったら応援しよう!