Laravel 5方法[ALL]不存在

时间:2015-04-11 15:30:57

标签: php mysql laravel-5

我正在尝试在Laravel 5中创建一个CRUD应用程序,以便更好地理解php平台如何工作(第一次使用它),但我一直得到“方法[全部]不存在”。错误,我无法理解我做错了什么。我在Mysql中有一个名为'products'的表,我正在尝试做的是列出表中的所有条目。我还有一个index.blade.php,如果需要我会发布。

ProductsController.php

class ProductsController extends Controller {

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{
    $products = ProductsController::all();

    return View::make('products.index')->with('products', $products);
}

Products.php

class Products extends Eloquent
{

}

routes.php文件

Route::resource('/', 'ProductsController@index');

2 个答案:

答案 0 :(得分:5)

  

Eloquent将假设User模型将记录存储在users表中。您可以通过在模型上定义$table属性来指定自定义表。 [Ref]

因此,您应该将Products.php重命名为Product.php(或在模型上定义$table属性)。

然后您可以检索所有产品:

$products = Product::all();

<强> Product.php

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Product extends Model {

    //

}

<强> ProductsController.php

<?php namespace App\Http\Controllers;

use App\Product;

class ProductsController extends Controller {

    public function index()
    {
        $products = Product::all();

        return View::make('products.index')->with('products', $products);
    }

}

答案 1 :(得分:1)

为什么要编写ProductsController来访问all()函数。要访问all()函数,您必须调用Product model。

ProductsController::all();

示例

产品型号

class Product extends Model
{
    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'products';
}

产品控制器

class ProductController extends Controller {

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{
    $products = Product::all();

    return View::make('products.index')->with('products', $products);
}