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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

PHP

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

Q&A

1回答

1001閲覧

Laravelの主キー(id)にuuidが代入される

teityann1225

総合スコア158

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

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

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

PHP

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

0グッド

0クリップ

投稿2021/08/09 06:32

編集2021/08/10 06:44

#発生している現象
Laravel8でModelを作成し、主キーのid(自動採番)とは別にid推測されないようにするために、uuidを設定するカラムを作成しました。
uuidは自動で入るのですが、なぜかCreateする際に、idにもuuidが入っており、整数以外入れるなとエラーが出てしまいます。
原因わかりますでしょうか?
エラー画面

#環境
Laravel8
PHP7.4.2

#コード

Model(Report.php)の一部

class Report extends Model { use HasFactory; use Searchable; protected $fillable = ['user_id','title','description','account_name','is_account_name_null','report_uuid']; public function scopeUuid($query,$uuid){ return $query->where('report_uuid',$uuid)->first(); } public function scopeGetUudFromId($query,$uuid){ return $query->where('report_uuid',$uuid)->first()->report_uuid; } ** 省略** protected static function boot(): void { parent::boot(); self::creating(function ($model){ $model->report_uuid = (string) Str::orderedUuid(); }); }

Migrationファイル

class CreateReportsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('reports', function (Blueprint $table) { $table->id(); $table->uuid('report_uuid')->unique()->index(); $table->foreignId('user_id')->constrained(); $table->string('title'); $table->string('description'); $table->string('account_name'); $table->boolean('is_account_name_null')->default(false); $table->timestamps(); });

追加のMigrationファイル

class AddGameModeToReportsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('reports', function (Blueprint $table) { $table->foreignId('game_mode_id'); $table->foreignId('character_id'); }); }

Create部分

$report = Report::create([ "user_id" => Auth::id(), "title" => $request->input('report-title'), "description" => $request->input('report-description'), "character_id" => $request->input('character'), "game_mode_id" => $request->input('game_mode'), "account_name" => $request->input('account-name', 'none'), "is_account_name_null" => $request->input('cantReadCheck', false) == "on", "time_unknown" => $request->input('unknown_time_check', false) == "on", "occurrence_date" => $date, ]);

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

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

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

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

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

AbeTakashi

2021/08/09 14:19

Createするところのソースコードも合わせて入れた方が良いと思います。
teityann1225

2021/08/10 06:45

追記させていただきました。
AbeTakashi

2021/08/10 07:16

なんか違うところじゃないですか?'game_mode_id' ’time_unknown' 'occurrence_date'なんてカラムはエラーメッセージには表示されていませんし。
guest

回答1

0

laravelのログにどの場所でエラーが出たのかを追える部分があるので
それを確認すると良いです
下のメッセージの後ろにいろいろと出ています
以下サンプルですが、laravelのソースではなく、自分のプログラムを探して下さい

text

1[2021-09-17 13:12:04] demo.ERROR: SQLSTATE[42702]: Ambiguous column: 7 ERROR: 列参照"search_keyword"は曖昧です 2LINE 1: ..."."facility_id" where "facilities"."id" = $1 and ("search_ke... 3[stacktrace] 4 #0 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Connection.php(624): Illuminate\Database\Connection->runQueryCallback() 5 #1 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Connection.php(333): Illuminate\Database\Connection->run() 6 #2 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2130): Illuminate\Database\Connection->select() 7 #3 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Query/Builde r.php(2118): Illuminate\Database\Query\Builder->runSelect() 8 #4 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2604): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}() 9 #5 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2119): Illuminate\Database\Query\Builder->onceWithColumns() 10 #6 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2217): Illuminate\Database\Query\Builder->get() 11 #7 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2188): Illuminate\Database\Query\Builder->runPaginationCountQuery() 12→ #8 /var/www/challenge/app/Models/BaseBuilder.php(26): Illuminate\Database\Query\Builder->getCountForPagination() 13→ #9 /var/www/challenge/app/Models/User.php(207): App\Models\BaseBuilder->paginate() 14→ #10 /var/www/challenge/app/Http/Controllers/Manage/ManageUserController.php(24): App\Models\User::getUsers() 15→ #11 [internal function]: App\Http\Controllers\Manage\ManageUserController->index() 16 #12 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array() 17 #13 /var/www/challenge/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()

イメージ説明

投稿2021/09/30 23:31

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問