【问题标题】:Call to undefined function App\Http\Controllers\Post()调用未定义的函数 App\Http\Controllers\Post()
【发布时间】:2019-11-17 03:07:09
【问题描述】:

您好,我试图显示从 db 到 index page 的数据,但它说:Call to undefined function App\Http\Controllers\Post()

控制器:

  <?php

  namespace App\Http\Controllers;

  use Illuminate\Http\Request;
  use App\Post;

  class IndexController extends Controller
  {

      public function index()
      {
          $data = Post();
          return view('index', compact('data'));
          //return view('index');
      }

如何解决

【问题讨论】:

  • 通过使用它,我在管理面板中获取所有数据 public function index() { $data = Post::latest()->paginate(5); return view('adminhome', compact('data')) ->with('i', (request()->input('page', 1) - 1) * 5); }

标签: laravel eloquent laravel-5.8


【解决方案1】:
$data = Post();

将 all() 方法添加到这一行

$data = Post::all();

【讨论】:

    【解决方案2】:

    您正在尝试将 Post() 作为方法/函数而不是模型 Post 调用,并且由于 Post() 不存在,因此您会收到此错误。

    为了返回所有帖子,使用你的帖子模型,你应该这样写:

    $data = Post::all(); // To return all posts
    

    或者如果您想根据数据库中的某些字段对其进行过滤

    $data = Post::where('active', 1)->get(); // Get all active posts (you need to adjust to any field you have on your database)
    

    您的代码可能类似于:

     <?php
    
      namespace App\Http\Controllers;
    
      use Illuminate\Http\Request;
      use App\Post;
    
      class IndexController extends Controller
      {
    
          public function index()
          {
              $data = Post::all();
              return view('index', compact('data'));
          }
    

    请在此处阅读有关 eloquent 的更多信息: https://laravel.com/docs/5.8/eloquent

    【讨论】:

      【解决方案3】:

      正确的语法应该是:

        <?php
      
        namespace App\Http\Controllers;
      
        use Illuminate\Http\Request;
        use App\Post;
      
        class IndexController extends Controller
        {
      
            public function index(Request $request)
            {
                $data = $request->all(); //get all input
                //$data = $request->input('testing'); //$_POST['testing']
      
      
                return view('index', ['data' => '$data']);
      
                //return view('index', compact('data'));
                //return view('index');
            }
      

      文档:https://laravel.com/docs/5.8/requests#accessing-the-request

      【讨论】:

      • 尝试将dd($data) 放在您的index 页面视图中。您也可以尝试将return 更改为:return view('index', ['data' =&gt; '$data']);
      【解决方案4】:

      你应该修改你的代码:

      $data = Post::get();
      

      获取所有帖子

      【讨论】:

        猜你喜欢
        • 2022-11-15
        • 2020-02-26
        • 2017-08-23
        • 2017-10-16
        • 2018-10-16
        • 1970-01-01
        • 2015-12-28
        • 1970-01-01
        相关资源
        最近更新 更多