rarala2020
@rarala2020 (ら らら)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

LaravelでCall to undefined method stdClass::appends() エラー

Call to undefined method stdClass::appends()
(View: /home/ec2-user/environment/cms/resources/views/item/index.blade.php)

というエラーが出ているのですが、解決方法が分からず困っています。
item/index.blade.php内の下記の記述について指摘されていて何らか定義が漏れているのかと思うのですが、
どこにどのような記述を追加すれば解決するかお分かりの方いらっしゃいますでしょうか。

多:多のテーブル構造になっており、/item のディレクトリをブラウザで開くと発生しましたが
同じような記述をしている/postのほうは問題なく開くことができました。

item/index.blade.php
<div class="pagination-wrapper"> {!! $item->appends(["search" => Request::get("search")])->render() !!} </div>
ItemsController.php
        public function index(Request $request)
        {
            $keyword = $request->get("search");
            $perPage = 25;

            if (!empty($keyword)) {

                // ----------------------------------------------------
                // -- QueryBuilder: SELECT [items]--
                // ----------------------------------------------------
                $item = DB::table("items")
                ->orWhere("items.itemCode", "LIKE", "%$keyword%")->orWhere("items.url", "LIKE", "%$keyword%")->orWhere("items.img", "LIKE", "%$keyword%")->orWhere("items.price", "LIKE", "%$keyword%")->orWhere("items.genreId", "LIKE", "%$keyword%")->orWhere("items.genreName", "LIKE", "%$keyword%")->orWhere("items.colorId", "LIKE", "%$keyword%")->orWhere("items.colorName", "LIKE", "%$keyword%")->orWhere("items.shopName", "LIKE", "%$keyword%")->orWhere("items.shopUrl", "LIKE", "%$keyword%")->orWhere("items.itemName", "LIKE", "%$keyword%")->orWhere("items.caption", "LIKE", "%$keyword%")->select("*")->addSelect("items.id")->paginate($perPage);
            } else {
                    //$item = Item::paginate($perPage);
                // ----------------------------------------------------
                // -- QueryBuilder: SELECT [items]--
                // ----------------------------------------------------
                $item = DB::table("items")
                ->select("*")->addSelect("items.id")->paginate($perPage);              
            }

             return view("item.index", compact("item"));


        }
0

1Answer

変数 $post が正しく初期化されていません。

null な変数にある種の操作をすると stdClass のインスタンスがセットされます。その後メソッドを呼ぼうとすると Call to undefined method stdClass::xxx() エラーになります。

$post = null;
$post->foo = 123; // ここで $post が stdClass のインスタンスになる
$post->bar(); // => Call to undefined method stdClass::bar()
0Like

Your answer might help someone💌