【发布时间】:2014-09-28 11:39:06
【问题描述】:
我是 Laravel 的新手,来自 Codeigniter。
我正在尝试在Users 模型中加载save() 函数,以最终将帖子数据插入users 表中。
但我得到了错误
Declaration of User::save() should be compatible with …\Model::save(array $options = Array)
表单被提交到我的控制器中的这个函数。
public function createUser () {
$validator = Validator::make(
array(
'email' => Input::get('email'),
'password' =>Input::get('password')
),
array(
'email' => 'required|email|unique:users',
'password' => 'required|min:5|max:25'
)
);
if ($validator->fails()) {
echo 'fail';
} else {
$hashPass = Hash::make(Input::get('password'));
// input new row
$user = new User(Input::except('Submit'));
$user::save();
}
}
我的用户模型是 Laravel 附带的标准模型,并添加了以下几行。 (我只是想让它打印一些东西。)
protected $fillable = array('email');
public function save ($user)
{
print_r($user);
}
我不确定我是否正确使用了模型,但到目前为止我发现没有任何帮助。
【问题讨论】:
-
您正试图覆盖 Eloquent save() 函数,坏主意。从该模型中删除它并查看laravel.com/docs/eloquent#insert-update-delete
-
另外,Laravel 中大多不使用 echo。在函数中,使用了return。
-
@delmadord 所说的 - 如果您需要在
save上进行任何处理,请使用 model events。 -
另外,我喜欢使用raveren/kint 包,而不是使用
echo或print_r进行调试。它的格式非常好,并允许您在浏览器中浏览属性和方法。 -
也应该把
$user::save();改成$user->save();
标签: php laravel model eloquent