模型错误:Laravel 5中的all()

Dar*_*ann 0 php model laravel eloquent laravel-5

你能帮我吗?

我刚刚开始使用laravel 5并且无法获得这个简单的模型:all()可以工作.我确定我做错了什么,但我找不到什么.

这就是我所拥有的:

routes.php文件

Route::get('/', 'PageController@index');
Run Code Online (Sandbox Code Playgroud)

Partner.php

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Partner extends Model {
    protected $table = 'tab_parceiro';
    protected $fillable = '';
    public $timestamps = false;

    protected $primaryKey = 'codigo';
}
Run Code Online (Sandbox Code Playgroud)

PageController.php

<?php namespace App\Http\Controllers;

class PageController extends Controller {

    public function __construct()
    {
    }

    public function index()
    {
        $partners = \App\Partner::all();

        //return view('index', compact('partners'));
    }

}
Run Code Online (Sandbox Code Playgroud)

错误:

[2015-03-14 12:50:22] production.ERROR: exception 'ErrorException' with message 'array_flip() expects parameter 1 to be array, string given' in /home/ubuntu/workspace/storage/framework/compiled.php:9360
Run Code Online (Sandbox Code Playgroud)

| tab_parceiro | CREATE TABLE `tab_parceiro` (
  `CODIGO` int(11) NOT NULL AUTO_INCREMENT,
  `NOME` varchar(200) DEFAULT NULL,
  `ENDERECO` varchar(100) DEFAULT NULL,
  `TELEFONE` varchar(20) DEFAULT NULL,
  `EMAIL` varchar(50) DEFAULT NULL,
  `SITE` varchar(100) DEFAULT NULL,
  `CONTATO` varchar(50) DEFAULT NULL,
  `OBS` text,
  PRIMARY KEY (`CODIGO`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 |
Run Code Online (Sandbox Code Playgroud)

视图实际上无关紧要,因为错误发生在调用视图之前.

luk*_*ter 7

$fillable必须是一个数组而不是一个字符串:

protected $fillable = ['foo', 'bar'];
Run Code Online (Sandbox Code Playgroud)

我在其中放置了一些示例属性(foobar),因为空数组是默认值,您根本不需要指定它.无论如何,相当于你的空字符串将是:

protected $fillable = [];
Run Code Online (Sandbox Code Playgroud)