我在我的模型上执行各种操作,例如
User::destroy(Input::get('data'));
我需要测试上述操作是否成功,我该怎么做呢?
我试过了:
$deleted = User::destroy(Input::get('data'));
if (is_null($deleted) ) {
App::abort(404);
}
但无济于事。
这里的推荐做法是什么?
答案 0 :(得分:2)
如果您查看Illuminate\Database\Eloquent\Model
destroy()
方法,可以看到它返回已删除的记录数。
因此,最优雅的方式可能是:
$deleted = User::destroy(Input::get('data'));
if ( $deleted === 0 ) {
App::abort(404);
}
但是,如果你不关心严格的比较,你可以选择:
if( ! User::destroy(Input::get('data') )
{
App::abort(404);
}
这是有效的,因为0在严格比较时评估为false。这也是该方法的评论所说的(1058-1060):
我们会在这里初始化一个计数,这样我们就会返回删除的总数 为了操作。然后开发人员可以将此数字检查为布尔值 输入值或获取为记录等删除的记录总数
我建议你坚持进行强有力的比较,因为返回类型更清晰,但你可以自由选择你想要的任何东西。
答案 1 :(得分:0)
你应该能够做到
if(User::destroy(Input::get('data')))
{
}
如果用户已被删除,则应返回true或false。
希望有所帮助。