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

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

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

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

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

Q&A

0回答

1087閲覧

Laravel Nuxt.js での検索機能実装

退会済みユーザー

退会済みユーザー

総合スコア0

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

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

0グッド

0クリップ

投稿2021/04/17 00:57

編集2021/04/17 05:27

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Nuxt.js Laravel で検索機能の実装
■■な機能を実装中に以下のエラーメッセージが発生しました。
Nuxt.jsのcategoryテーブルの中のデータが入力された上で検索フォームのボタンを押すと、postsテーブルのカラムのcategory_idとそれに対するcategoriesテーブルカラムのidが連動して、postテーブルの一覧が表示されるようにしたいです。

発生している問題・エラーメッセージ

local.ERROR: Trying to get property of non-object {"exception":"[object] (ErrorException(code: 0): Trying to get property of non-object at /Users/33/develop/naratabi/src/app/Http/Controllers/PostController.php:65)
[stacktrace]
と取得しようとしているものがありませんというエラーが出てしまいます。
エラーメッセージ

### 該当のソースコード index.vue <template> <body> <div class="title"> <p>検索</p> </div> <div class="page_image"> <img src="~/assets/image/shika.jpg"> </div> <div class="search"> <input type="text" id="input_message" value="神社・寺" v-model="name" > <button class="button" type="text" @click="onSubmit()">検索</button> </div> </div> </div> </body> </template> <script> import axios from 'axios'; export default{ data(){ return{ post:[], id:'', name:'', content:'', } }, created(){ }, methods:{ onSubmit:function(){ axios.post(`http://127.0.0.1:8000/api/search`, { id:this.id, name: this.name, content: this.content, }) .then(response=>{ this.posts = response.data console.log(response.data); this.name = ''; this.content = ''; this.saved = true; }); this.$router.push({ path: `./post`}); } }, } </script> PostController.php 62. public function search(Request $request) 63.{ 64. $category = Category::where('name',$request->name)->first(); 65. $posts=Post::where('category_id',$category[id])->get(); 66. $param = ['input'=>$request->name,'posts'=>$posts]; 67.return response()->json(['input'=>$param],200);  } ```ここに言語名を入力 Nuxt.js ソースコード

試したこと

contorollerの$category[id]を$category->idにしたのですが、動きませんでした。

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

Lulucom

2021/04/17 04:47

エラーメッセージの中で PostController.php:65 と表示されていますので、PostController.php ファイルの65行目がわかるように行番号付きでコードを掲載されるとよいと思います。
退会済みユーザー

退会済みユーザー

2021/04/17 05:19

ありがとうございます。修正します。
Lulucom

2021/04/17 06:55 編集

行番号ありがとうございます。 64行目でCategoryが見つからず$categoryがnullになっているという状況でしょうか? データベースでcategoriesテーブルには該当のレコードは存在しますか? また、$category->idとした場合はそのエラー、$category[id]とした場合は別のエラーになるのではないでしょうか。
退会済みユーザー

退会済みユーザー

2021/04/17 08:28

categoriesテーブルにはid :1 name: 神社・寺 というレコードは存在しています。 $category[id]として場合はエラーは出ないのですが、googlechromeの検証 でconsoleを確認したところ、 {input: {…}} input: {input: "神社・寺", posts: Array(0)} __proto__: Objectという表示が出て、データベースの配列が表示されない状態になっています。
Lulucom

2021/04/17 09:12

65行目は $category[id] になっていますが、$category->id が正しいと思います。 そのように変更した上で、Vueのdataで name:'', のところを name: '神社・寺', にしてみるとうまくいかないでしょうか?
退会済みユーザー

退会済みユーザー

2021/04/17 09:18

name:'神社・寺'にしたのですが、うまくいきませんでした。
Lulucom

2021/04/17 10:06

search メソッドでは $request->name の中身は '神社・寺' になっていますか?
退会済みユーザー

退会済みユーザー

2021/04/17 10:24

すいません、$request->nameの中身はchromeのconsoleで確認できるのでしょうか?
Lulucom

2021/04/17 11:02 編集

少し面倒かもしれませんが、Laravel Debugbarなどを利用すると確認できると思います。
Lulucom

2021/04/19 04:13 編集

ChromeのNetworkのところで、送信された値を確認できないでしょうか?
退会済みユーザー

退会済みユーザー

2021/04/19 11:51

consoleのネットワークで確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問