我正在尝试在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');
答案 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);
}