2015-04-06 44 views
0

我这样做验证和工作原理:laravel 5双重验证,并要求

public function salvar(CreateEquipamento $Vequip, CreateLocalizacao $VLocal) 
    { 
     $this->equipamento->create($Vequip->all()); 

     $equipamento = $this->equipamento->create($input); 

     return redirect()->route('equipamento.index'); 
    } 

我要的是还做这样的事情得到最后创建的设备ID,以及包括在阵列中验证和创建本地验证(CreateLocalizacao $VLocal),因为我已经两个表,一个用于设备和另外一个谁保存在我的设备是在所有的地方。

$input['equipamento_id'] = $equipamento->id; 

$this->localizacao->create($VLocal->all()); 

我怎么会做这样的事情? thx提前!

我做了一个“workarround”解决方案;)

$localizacao = [ 
       'equipamento_id' => $id, 
       'centrocusto_id' => $input['centrocusto_id'], 
       'projeto' => $input['projeto'], 
       'data_movimentacao' => $input['data_movimentacao'] 
       ]; 

$this->localizacao->create($VLocal->all($localizacao)); 

我不知道这是否是做的最好的方式,但工作原理,但如果有人必须做后,请以正确的方式!

+0

发布一个答案。如果您需要葡萄牙语的帮助,请将其发布到葡萄牙语的stackoverflow并链接到此处。我能帮你。 (Se precisar de ajuda emportuguês,posta no brasileiro epõeo link aqui)。 – hfingler

回答

1

你在使用Laravel 5吗?

如果是,请使用表单请求,它们使一切变得更容易。如果您需要从一个表单中验证两件事情,则只需在控制器方法中放入两个请求。当我为电子商务页面注册用户时,我会使用它。我需要验证用户数据和地址数据,就像这样:

public function store(UserRegisterRequest $user_request, AddressCreateRequest $add_request) 
{ 
    //if this is being executed, the input passed the validation tests... 
    $user = User::create(
     //... some user input... 
    )); 

    Address::create(array_merge(
     $add_request->all(), 
     ['user_id' => $user->id] 
    )); 
}} 

使用工匠制作的要求:php artisan make:request SomethingRequest,它会生成一个空的请求(注意授权函数总是返回false,将其更改为真或代码验证用户是否有权发出该请求)。

这里有一个请求的例子:

class AddressCreateRequest extends Request { 
    public function authorize() 
    { 
    return true; 
    } 

    public function rules() 
    { 
    return [ 
     "fullname" => "required", 
     //other rules 
    ]; 
    } 

} 

更多,关于文档: http://laravel.com/docs/5.0/validation#form-request-validation