Laravel 5 中的 Model:all() 错误
Error on Model:all() in Laravel 5
你能帮帮我吗?
我刚开始使用 laravel 5,无法让这个简单的 Model:all() 工作。我确定我做错了什么,但我不知道是什么。
这是我的:
routes.php
Route::get('/', 'PageController@index');
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';
}
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'));
}
}
错误:
[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
Table
| 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 |
视图实际上并不重要,因为错误发生在调用视图之前。
$fillable
必须是 数组 而不是字符串:
protected $fillable = ['foo', 'bar'];
我在其中放置了一些示例属性(foo
和 bar
),因为空数组是默认值,您根本不必指定它。无论如何,相当于你的空字符串是:
protected $fillable = [];
您正在使用
protected $fillable = '';
但它接受数组,所以它应该是
protected $fillable = array();
可填充应如下所示:
protected $fillable = ['NOME', 'ENDERECO', 'TELEFONE', 'EMAIL', 'SITE', 'CONTATO','OBS'];
注意:使用大写 table 列名并没有错,但我确实建议将小写作为一个好的约定。
你能帮帮我吗?
我刚开始使用 laravel 5,无法让这个简单的 Model:all() 工作。我确定我做错了什么,但我不知道是什么。
这是我的:
routes.php
Route::get('/', 'PageController@index');
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';
}
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'));
}
}
错误:
[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
Table
| 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 |
视图实际上并不重要,因为错误发生在调用视图之前。
$fillable
必须是 数组 而不是字符串:
protected $fillable = ['foo', 'bar'];
我在其中放置了一些示例属性(foo
和 bar
),因为空数组是默认值,您根本不必指定它。无论如何,相当于你的空字符串是:
protected $fillable = [];
您正在使用
protected $fillable = '';
但它接受数组,所以它应该是
protected $fillable = array();
可填充应如下所示:
protected $fillable = ['NOME', 'ENDERECO', 'TELEFONE', 'EMAIL', 'SITE', 'CONTATO','OBS'];
注意:使用大写 table 列名并没有错,但我确实建议将小写作为一个好的约定。