Poderia jurar que fiz essa lógica do mesmo jeito e funcionou, entretanto, agora, dá um problema sério, quando pego a senha do form, eu faço $request->senha = bcrypt($request->senha); e lá no final, onde inseri um dump die, antes de fazer update ou create, as duas linhas de dd no $request e no $request->all(), ocorre uma direrença, entre a senha do $request->senha ser criptografada e a do $request->all() não ser e o problema é que a Model aceita, desses dois, o $request->all() que não está criptograda, não dando pra autenticar o usuário depois de criá-lo.
A pergunta é boa e também pode esclarecer muitas dúvidas quando se trabalha com o Framework Laravel.
Quando você altera um membro da instância do $request
o mesmo fica com as alterações, mas, o método ->all()
são os dados em bruto sem alteração que foram enviados do seu formulário ou/e query
ou/e files
não sofrem alterações feitas na instância $request
, o atributo da classe é um instância de outra classe (new ParameterBag($request)
) que faz outras operações e você utilizando a instância $request
não altera essa porque não chega até ela.
Recomendação:
-
Utilize dessa forma:
$data = $request->all(); $data['senha'] = .... ;
e passe o valor do $data para Eloquent
User::create($data)
essa é a forma ideal.
Valeu. Consegui processar isso, subconscientemente, ainda há pouco, mas se não tivesse, a sua resposta me seria a solução.