質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

3回答

362閲覧

laravelを使ったDBの更新方法を教えてください 2

HirakuMorishima

総合スコア29

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/06/19 11:17

##現状・お願い
現在、laravelを使ってDBへのデータ登録・更新機能を作成しています。
データ登録はできるのですが、その後の更新ができません。
更新をするためにはどのようなコードが必要でしょうか。お教えくださいませ。

##エラーメッセージ
Creating default object from empty value
イメージ説明

###editClient.blade.php

php

1@extends('layouts.layout') 2@section('title','クライアント一覧') 3 @section('body') 4 <!--サイドメニューここから--> 5 <div class="row"> 6 <div class="col s0 l2"> 7 <ul id="slide-out" class="sidenav sidenav-fixed "> 8 <li><a href="{{url('/user')}}">クライアント一覧<i class="material-icons left">person</i></a></li> 9 <li><a href="#">案件カレンダー<i class="material-icons left">date_range</i></a></li> 10 <li><a href="{{url('/addClient')}}">クライアント追加<i class="material-icons left">add</i></a></li> 11 <li><a href="{{url('addItem')}}">案件追加<i class="material-icons left">add</i></a></li> 12 </ul> 13 </div> 14 <!--サイドメニューここまで--> 15 <div class="col s12 offset-l1 l8"> 16 <nav class="header"> 17 <a href="#" data-target="slide-out" class="sidenav-trigger btn-floating"><i class="medium z-depth-1 material-icons">add</i></a> 18 <h2 class="center-align">クライアント情報管理</h2> 19 </nav> 20 <h3>{{$list->client_name}}</h3> 21 <form action="/updateClient/{{$list->user_id}}" method="POST"> 22 {{ csrf_field() }} 23 <div class="input-field col s12"> 24 <input id="client_name" type="text" class="validate" name="client_name" value="{{$list->client_name}}"> 25 <label for="client_name">クライアント名</label> 26 </div> 27 <div class="input-field col s12"> 28 <input id="personnel" type="text" class="validate" name="personnel" value="{{$list->personnel}}"> 29 <label for="personnel">担当者名</label> 30 </div> 31 <div class="input-field col s12"> 32 <input id="client_tel_number" type="text" class="validate" name="client_tel_number" value="{{$list->client_tel_number}}"> 33 <label for="client_tel_number">連絡先</label> 34 </div> 35 <div class="input-field col s12"> 36 <input id="client_address" type="text" class="validate" name="client_address" value="{{$list->client_address}}"> 37 <label for="client_address">住所</label> 38 </div> 39 <div class="input-field col s12"> 40 <select id="sales_tax_rate" class="select" name="sales_tax_rate" value="{{$list->sales_tax_rate}}"> 41 <option value="" disabled selected>消費税率を選んでください。</option> 42 <option value="1">0%(税抜)</option> 43 <option value="2">8%(税込)</option> 44 <option value="3">10%(税込)</option> 45 <option value="4">5%(税込)</option> 46 </select> 47 <label for="sales_tax_rate">消費税率</label> 48 </div> 49 <div class="input-field col s12"> 50 <select id="withholding_tax_rate" class="select" name="withholding_tax_rate" value="{{$list->withholding_tax_rate}}"> 51 <option value="" disabled selected>源泉徴収税率を選んでください。</option> 52 <option value="1">0%(無課税)</option> 53 <option value="2">10.21%</option> 54 <option value="3">20.42%</option> 55 </select> 56 <label for="withholding_tax_rate">源泉徴収税率</label> 57 </div> 58 <div class="input-field col s12"> 59 <select id="tax_category" class="select" name="tax_category" value="{{$list->tax_category}}" > 60 <option value="" disabled selected>税区分を選んでください。</option> 61 <option value="1">税別</option> 62 <option value="2">税込</option> 63 <option value="3">免税</option> 64 </select> 65 <label for="tax_category">税区分</label> 66 </div> 67 <div class="input-field col s12"> 68 <select id="fraction" class="select" name="fraction" value="{{$list->fraction}}"> 69 <option value="" disabled selected>端数処理を選んでください。</option> 70 <option value="1">切り上げ</option> 71 <option value="2">切り下げ</option> 72 <option value="3">四捨五入</option> 73 </select> 74 <label for="fraction">税区分</label> 75 </div> 76 <input type="submit" value="クライアント情報更新" class="waves-effect waves-light btn blue accent-1"> 77 </form> 78 <form method="POST" action="/deleteClient/{{$list->id}}" method="post"> 79 {{ method_field('delete') }} 80 {{csrf_field()}} 81 <input type="submit" value="クライアント情報削除" class="waves-effect waves-light btn red lighten-1"> 82 </form> 83 </div> 84 </div> 85@endsection

###TodoController(一部抜粋)

php

1// 案件情報の追加・更新・削除 2 public function addNewItem(Request $request){ 3 $item = new Item(); 4 $item->user_id = Auth::user()->id; 5 $item->client_id = $request->client_id; 6 $item->item_name = $request->item_name; 7 $item->delivery_date = $request->delivery_date; 8 $item->unit_price = $request->unit_price; 9 $item->states = $request->states; 10 $item->memo = $request->memo; 11 $item->save(); 12 return redirect('/addItem'); 13 } 14 public function editItem($id){ 15 $list = Item::find($id); 16 return view('todo.editItem', compact('list')); 17 } 18 public function updateItem(Request $request){ 19 $item = Item::where('id', '=', $request->id)->first(); 20 $item->user_id = Auth::user()->id; 21 $item->client_id = $request->client_id; 22 $item->item_name = $request->item_name; 23 $item->delivery_date = $request->delivery_date; 24 $item->unit_price = $request->unit_price; 25 $item->states = $request->states; 26 $item->memo = $request->memo; 27 $item->save(); 28 return redirect('/user'); 29 } 30 public function deleteItem(Request $request) 31 { 32 $client = Item::where('id', '=', $request->id)->first(); 33 $client->delete(); 34 return redirect()->back(); 35 } 36}

###web.php

php

1Route::get('/', 'PageController@index'); 2Route::get('/user', 'UserController@user'); 3Route::get('/addClient', 'TodoController@addClient'); 4Route::get('/addItem', 'TodoController@addItem'); 5Route::get('/editItem', 'TodoController@editItem'); 6Route::get('/items/{id}', 'TodoController@items'); 7Route::get('/invoice', 'InvoiceController@invoice'); 8Route::get('/editUser', 'InvoiceController@editUser'); 9Auth::routes(); 10Route::get('/home', 'HomeController@index')->name('home'); 11 // クライアント情報の追加・更新・削除 12Route::post('/addNewClient','TodoController@addNewClient'); 13Route::get('/editClient/{id}', 'TodoController@editClient'); 14Route::post('/updateClient/{id}','TodoController@updateClient'); 15Route::delete('/deleteClient/{id}','TodoController@deleteClient'); 16 // 案件情報の追加・更新・削除 17Route::post('addNewItem','TodoController@addNewItem'); 18Route::get('/editItem/{id}', 'TodoController@editItem'); 19Route::post('/updateItem/{id}','TodoController@updateItem'); 20Route::delete('/deleteItem/{id}','TodoController@deleteItem'); 21

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/19 11:56

タイトルに連番はやめましょう。 起きている問題、実現したいことの詳細、何に詰まっているかなど具体的に要件を記載してください
guest

回答3

0

aro10さんがおっしゃっている通り、 $request->idのItemデータがDB上に存在しない 可能性が高いです。

dd() を使って、 Auth::user()->idAuth::user にdataが入っているか確かめてみてください

例 dd(Auth::user()->id)

投稿2019/06/22 17:46

Kazuyuki-T0806

総合スコア326

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CRUDの基本的な扱い方を先に学んでおきましょうって感じですね。

https://www.inet-solutions.jp/technology/laravel-tutorial/

投稿2019/06/19 16:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラー画面の内容にエラー個所が書かれているので、ToDoControllerの52行目を確認してみましょう。

以下で、$request->idのItemデータがDB上に存在しないので、nullが帰ってきており、

$item = Item::where('id', '=', $request->id)->first();

その後の代入でエラーになっています。

$item->user_id = Auth::user()->id;

参考
PHP Warning: Creating default object from empty valueってなに?

投稿2019/06/19 13:30

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問