laravel return重定向内部功能

时间:2015-01-16 19:57:27

标签: laravel

我的控制器上有这个代码,但返回不起作用,因为它在一个函数内部,我怎样才能使它工作?
我这样做是为了确保数据保存在数据库中并重定向到面板。

public function save(){
 .
 .
 .
 Offer::saved(function($offer)                
 {
    Log::info('saved'); 
    //send email, etc.
    return Redirect::to('/panel');
 });
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你真的需要在saved事件中进行重定向吗?

有些事情应该有效:

public function save(){
    if($offer->save()){
        return Redirect::to('/panel');
    }
}

(如果一切顺利的话,save()将返回true)


但是,如果真的需要在活动中执行此操作,您可以致电send()至"返回"手动回复:

Offer::saved(function($offer)                
{
    Log::info('saved'); 
    Redirect::to('/panel')->send();
});

修改

对于像DB::table('offers')->where('id',$inputs['id'])->update($fields);

这样的查询

您也可以查看返回值。 update方法将返回受影响行的计数。因此,如果是> 0 truthy ,则记录已更新。

$affectedRows = DB::table('offers')->where('id',$inputs['id'])->update($fields);
if($affectedRows){
    return Redirect::to('/panel');
}

但是如果您已经设置了Eloquent模型,为什么还要使用查询生成器:

$offer = Offer::find($inputs['id']);
$saved = $offer->update($fields);
if($saved){
    return Redirect::to('/panel');
}