20220112のlaravelに関する記事は5件です。

Laravelのカラム追加方法

既にテーブルは構築済みであり、後から機能の追加に伴いテーブルのカラムも追加する必要が出てきたたとします。 今回、筆者が行った方法について紹介させていただきます。 追加migrationファイルの作成 php artisan make:migration add_article_to_users_table --table=users usersテーブルにarticleというカラムを追加する為、上記artisanコマンドを実施。 migrationのフォルダ内に『2022_01_12_140902_add_article_to_users_table.php』というファイルが作成されます。 2022_01_12_140902_add_article_to_users_table.php <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class AddArticleToUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { //{{ ここに追加したいカラム情報を記入 }} }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { // }); } } 追加したいカラム情報の反映 UP()の中に追加したいカラム情報を記載します。 例)↓ 2022_01_12_140902_add_article_to_users_table.php public function up() { Schema::table('users', function (Blueprint $table) { $table->string('article',400)->nullable(); }); } 『$table->string('article',400)->nullable();』というカラム情報を追加したい場合は上記記載となります。 php artisan migrate 追加したカラム情報が一通り記載終えたら、 最期に上記artisanコマンドを実施。 以上となります。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Return value of App\XXX\YYY::ZZZ() must be of the type string, none returnedの対応

環境 Laravel 6.* エラー内容 httpのpost実行時に、以下のエラーが表示される。 Return value of App\XXX\YYY::ZZZ() must be of the type string, none returned エラーの意味 App\XXX\YYYのZZZ()メソッドにおいて、戻り値としてstringの型指定があるが、noneが返っている(メソッドの戻り値がない)という意味 問題点 App\XXX\YYYのZZZ()メソッドでは、以下のように条件に応じて戻り値が記述されていたが、条件に当てはまらない場合の戻り値が記述されていなかった。 if (条件A) { return x; } if (条件B) { return y; } 解決策 条件に当てはまらない場合も戻り値を返すようにする。 if (条件A) { return x; } elseif (条件B) { return y; } else { return 0; } 最後に エラー分で調べてもあまりダイレクトに解決策が出てこなかったので、Qiita投稿の復習も兼ねてアウトプットしてみました。誰かの参考になれば幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

1054 unknown column 'email in 'field list'はこれで解決した

今やっていること Laravel6を使って簡単な掲示板機能の作成中。 最初の新規登録でつまりました。 表示されたエラー SQLSTATE[42S22]: Column not found: 1054 Unknown column 'email' in 'field list' このエラーの解決方法はいろんな記事で読みましたが、イマイチ解決できず。 新規登録の機能を実装しているRegisterControllerを見直してみました。 解決方法 RegisterController.php public function register(Request $request){ if($request->isMethod('post')){ $data = $request->input(); $validator = Validator::make($data,[ 'username' => 'required|max:30', 'email' => 'required|max:100|email:rfc,dns|unique:users,mail', 'password' => 'required|min:8|max:30|confirmed', 'password_confirmation' => 'required|min:8|max:30', ]); if($validator->fails()){ return redirect('/register') ->withErrors($validator) ->withInput(); } else { $this->create($data); return redirect('added'); } } return view('auth.register'); } 新規登録後、「登録ありがとうございます」と表示されている画面へ移行するように書いています。 これは以前作っていたSNS開発のコードをそのままコピーして改変していたのですが、ここの部分 RegisterController.php 'email' => 'required|max:100|email:rfc,dns|unique:users,mail', MySQLのテーブルは、"email"という名前でしたので、uniqueのカラム名を変えていないことが原因でした。 本当にしょうもないミス? RegisterController.php 'email' => 'required|max:100|email:rfc,dns|unique:users,email', これで問題なくDBに登録ができました?? まとめ 以前のコードをコピーするときはDB名を見直そう!(当たり前) バリデーションの登録が原因であることはあまり書かれている記事を見かけなかったので記事にしてみました。すぐにエラーの原因が見つかってよかったです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Laravel】oldがinputのvalue情報やtextareaの情報を保持してくれないとき

はじめに laravelで、formなどでinputのvalue値などを送信するときに、old関数を設定して「入力エラーでも入力内容を保持」してくれるように設定したがしてくれないときの自分用メモ。 解決 バックエンド側で return redirect()->back()->withInput()->withErrors('Errors'); のように「->withInput()」を配置するとうまくいく。 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【初心者が解く】Windows10環境でLaravel sailインストールのエラーが起きる時

初心者の自分なりに解決方法を見つけたので、メモ用として記載しておきます。 OS: Windows10 にてエラーを確認(macは持っていないので同様の処理でうまくいくかは不明です。) 症状 インストール時に下記のエラー表記が出る failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c apt-get update && apt-get install -y gnupg gosu curl ca-cer tificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 && mkdir -p ~/.gnupg && chmod 600 ~/.gnupg && echo "disable-ipv 6" >> ~/.gnupg/dirmngr.conf && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C && apt-key adv - -homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu hirsute main" > /etc/apt/sources.list.d/ppa_ondrej_php.list && apt-get update && apt-get install -y php8.1-cli php8.1-dev php8.1-pgsql php8.1- sqlite3 php8.1-gd php8.1-curl php8.1-imap php8.1-mysql php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath php8.1-soap ph p8.1-intl php8.1-readline php8.1-ldap php8.1-msgpack php8.1-igbinary php8.1-redis php8.1-swoole php8.1-memcached php8.1-pcov php 8.1-xdebug && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer && curl -sL https:/ /deb.nodesource.com/setup_$NODE_VERSION.x | bash - && apt-get install -y nodejs && npm install -g npm && curl -sS https://dl.yarnpkg.com/ debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && apt-get upd ate && apt-get install -y yarn && apt-get install -y mysql-client && apt-get install -y postgresql-client && apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*]: exit code: 100 対策 ターミナルにて下記を実施 "docker-compose build --no-cache" この間でエラー起きて止まる可能性がある、自分は[8/11]の時にエラー吐いて止まった。 ./vendor/bin/sail up -d エラー起きて止まっても上記を実施。 Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them [+] Running 10/10 ⠿ Network mybbs_sail Created 0.9s ⠿ Volume "mybbs_sailredis" Created 0.0s ⠿ Volume "mybbs_sailmeilisearch" Created 0.0s ⠿ Volume "mybbs_sailmysql" Created 0.0s ⠿ Container mybbs_meilisearch_1 Started 4.0s ⠿ Container mybbs_selenium_1 Started 3.6s ⠿ Container mybbs_mysql_1 Started 4.5s ⠿ Container mybbs_redis_1 Started 3.6s ⠿ Container mybbs_mailhog_1 Started 4.8s ⠿ Container mybbs_laravel.test_1 Started 上のような表記が出れば処理は完了しています。 最後に 下記にアクセスしLaravelの公式サイトが表示されれば完了 http://localhost:8573/ ※正直まだまだDockerの事が詳しくないので分からない事だらけですが、Youtubeや学習サイト等でチュートリアル形式の動画で 環境構築の練習をしている際にも言語問わずエラーが出まくるので、Docker嫌いになりそうです・・・。 機能面では優れものだと分かっているのですが、そこに到達するまでが鬼畜過ぎます。やっぱりMacの方が使いやすいのかな?
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む