没有模型[modelName]的查询结果,laravel重定向错误

时间:2014-12-15 05:51:43

标签: php redirect laravel controller routes

我的编辑表单中的输入错误正在返回时出现问题"模型[modelName]"而不是像它应该生成验证器消息。这是我的代码:

PetController.php

public function update($id)
{
    //omited the validator messages cause it's too long, but it works cause I have an add function that uses the same thing.

    try {
        $pet = Pet::findOrFail(Input::get('id'));
    }
    catch(exception $e) {
        return Redirect::to('/pet')->with('flash_message', 'Error Editing Pet.');
    }

    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
    $breed = filter_var($_POST["breed"], FILTER_SANITIZE_STRING);
    $birthday = filter_var($_POST["birthday"], FILTER_SANITIZE_STRING);

    $pet->name = $name;
    $pet->breed = $breed;
    $pet->birthday = Pet::saveDateFmt($birthday);
    $pet->save();

    return Redirect::to('/pet')->with('flash_message','Your changes have been saved.');
}

因此,任何带有名称,品种或日期的输入错误都会将我重定向到/ pet并显示来自此函数的错误消息:

public function edit($id){
    try {
        $pet    = Pet::findOrFail($id);
    }
    catch(exception $e) {
        return Redirect::to('/pet')
            ->with('flash_message', $e->getMessage());
            //this is where I get the error msg
    }

    return View::make('edit_pet', ['vet_list' => Vet::lists('name','id')])->with('pet', $pet);

}

我的意思是,我很高兴它能够捕获输入错误,但我不想每次都将用户重定向回索引页面。我需要理解为什么重定向这种方式来理解如何解决它。

2 个答案:

答案 0 :(得分:0)

所以更新会将您重定向到编辑?如果这是正确的,那么当你重定向导致它尝试找到一个id为null时,你不会传入一个id,如果编辑函数中的id为null,请尝试捕获。

答案 1 :(得分:0)

好的我自己修好了,显然我的表格错了,我改成了:

{{ Form::open(array('action' => array('PetController@update', $pet->id), 'method' => 'put')) }}