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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

5149閲覧

Laravelでデータベースの存在によりInsert/Update

yamayamak

総合スコア131

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/10/03 14:40

編集2017/10/03 14:41

Laravelでデータベースのレコードの存在を確認し、なければInsertし、有ればUpdateでデータを変更したいので、Controllerに以下のコードを記載していますが、以下のようなエラーとなり実行できません。
どのように修正すればよいでしょうか?

php

1$sigdata = Sigdata::where('f_remid', $remid)->where('sig_name', $request->input($sig_field))->first(); 2if (! $sigdata) { 3 $sigdata = new Sigdata(); 4 $sigdata->f_remid = $remid; 5 $sigdata->sig_name = $request->input($sig_field); 6} 7$sig_field = 'sig_data' . $i; 8$sigdata->sig_data = $request->input($sig_field); 9$sigdata->save();

エラーは以下のとおりです。

php

1"message": "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' (SQL: update `sigdatas` set `sig_data` = data0,112, `upd 2ated_at` = 2017-10-03 23:14:48 where `id` is null)",

idを指定するようなエラーに見えますがどのように対応すればよいかわかりません。よろしくお願いします。

データは以下のようになっています。

SQL

1mysql> select * from sigdatas; 2+-------+---------+----------+-----------+---------------------+---------------------+ 3| sigid | f_remid | sig_name | sig_data | created_at | updated_at | 4+-------+---------+----------+-----------+---------------------+---------------------+ 5| 11 | 3 | signame0 | data0,111 | 2017-09-10 22:47:12 | 2017-09-10 22:47:12 | 6| 12 | 3 | signame1 | data1,111 | 2017-09-10 22:47:12 | 2017-09-10 22:47:12 | 7+-------+---------+----------+-----------+---------------------+---------------------+ 82 rows in set (0.00 sec)

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

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

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

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

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

guest

回答1

0

ベストアンサー

主キーはsigidですか?

Laravelのモデルは主キーのカラム名がidであることを前提としているので
Sigdataモデルに以下を追加してください。

protected $primaryKey = 'sigid';

http://kubotti.hatenablog.com/entry/2016/03/16/114030

投稿2017/10/03 15:11

編集2017/10/03 15:15
fagai

総合スコア2158

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

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

yamayamak

2017/10/04 01:08

ご指摘の通りでした。そんなことがあるとは知りませんでした。助かりましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問