为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 7 中的 AJAX 分页(内部服务器错误)

Laravel 7 中的 AJAX 分页(内部服务器错误)

PHP
ITMISS 2023-04-28 17:08:27
我正在使用 Laravel 7,我想使用 ajax 进行分页,这样当我单击下一页时它不会刷新整个页面。我搜索以解决我的问题,但它不起作用,并且每当我在控制器中使用 error_log() 时它都不会转到 fetch()。每当我点击第 2 页时,它就会出错。在控制台中显示的错误是:app.js:16437 GET http://127.0.0.1:8000/ledger/fetch?page=2 500 (Internal Server Error)在 storage/logs/laravel.log[previous exception] [object] (BadMethodCallException(code: 0): Method Illuminate\\Database\\Eloquent\\Collection::links does not exist. at C:\\xampp\\htdocs\\final_Financial\\fin_book_09\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\Macroable.php:103)账本控制器.php    public function index(Request $request)    {        $disableLedger = true;        $ledger = Ledger::orderBy('id', 'DESC')            ->where('user_id', auth()->user()->id)            ->paginate(5);        $ledgerCatType = DB::table('ledgers')            ->orderBy('ledgers.id', 'DESC')            ->join('categories', 'ledgers.cat_id', '=', 'categories.id')            ->where('ledgers.user_id', auth()->user()->id)            ->get('categories.type');        $category = Category::where('user_id', auth()->user()->id)->get();        return view('ledgers.index', [            'ledgers' => $ledger,            'categories' => $category,            'disableLedger' => $disableLedger,            'ledgerCatType' => $ledgerCatType        ]);    }    function fetch(Request $request)    {        if ($request->ajax())        {            $ledger = Ledger::orderBy('id', 'DESC')                ->where('user_id', auth()->user()->id)                ->paginate(5);            $ledgerCatType = DB::table('ledgers')                ->orderBy('ledgers.id', 'DESC')                ->join('categories', 'ledgers.cat_id', '=', 'categories.id')                ->where('ledgers.user_id', auth()->user()->id)                ->get('categories.type');            $category = Category::where('user_id', auth()->user()->id)->get();            return view('ledger.entries', compact('ledger', 'categories', 'ledgerCatType'))->render();        }    }
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

好吧没关系,我修好了。我只是想在这里发布答案,以防有人也被它困住。问题是我的路线,而不是使用resource我手动添加的路线:


Route::get('ledger', 'LedgerController@index')->name('ledger.index')->middleware('auth');

Route::post('/ledger', 'LedgerController@store')->name('ledger.store')->middleware('auth');

Route::delete('/ledger/{id}', 'LedgerController@destroy')->name('ledger.destroy')->middleware('auth');

Route::get('/ledger/fetch', 'LedgerController@index')->name('ledger.fetch')->middleware('auth');

我还编辑了我的代码index(),因此将它与fetch()方法结合起来,因此它现在看起来像这样:


    public function index(Request $request)

    {

        $disableLedger = true;

        $ledgers = Ledger::orderBy('id', 'DESC')

            ->where('user_id', auth()->user()->id)

            ->paginate(10);

        $ledgerCatType = DB::table('ledgers')

            ->orderBy('ledgers.id', 'DESC')

            ->join('categories', 'ledgers.cat_id', '=', 'categories.id')

            ->where('ledgers.user_id', auth()->user()->id)

            ->select('categories.type')

            ->paginate(10);

        $categories = Category::where('user_id', auth()->user()->id)->get();

        if ($request->ajax())

        {

            return view('ledgers.entries', compact('ledgers', 'categories', 'ledgerCatType', 'disableLedger'))->render();

        }

        return view('ledgers.index',  compact('ledgers', 'categories', 'ledgerCatType', 'disableLedger'));

    }


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信