2016-02-18 2 views
1

J'ai expérimenté avec Laravel - et j'ai rencontré un problème avec la sauvegarde/mise à jour d'un enregistrement (description d'un utilisateur). J'ai basé le code sur certains qui fonctionnent - donc je suis un peu confus quant à ce que j'ai raté.Enregistrer/mettre à jour des problèmes dans Laravel

Je peux faire un changement en utilisant php tinker (et cela se reflète sur la page - donc ce n'est pas une base de données) - mais en utilisant le site lui-même, laravel n'enregistre aucun texte entré dans le formulaire.

Ce ne sont pas les dossiers complets - tout ce que je ressens est probablement pertinent

Merci! :)

PS - Il est en silence à défaut, d'où la frustration et la nécessité d'un poste de débordement de pile :)


Form élément pour changer la description

{!! Form::model($user, ['method' => 'PATCH', 'action' => ['[email protected]', $user->id]]) !!} 
    {!! Form::text('description', null, ['class' => 'form-control']) !!} 
    {!! Form::submit('save', ['class' => 'btn btn-success']) !!} 
{!! Form::close() !!} 

UserController

public function store(EditUserRequest $request) 
{ 
    $user = new User($request->all()); 
    Auth::user()->users()->save($user); 
    return redirect('home'); 
} 

public function edit(User $user) 
{ 
    // if owner is posts creator (collection id matches user id) 
    if ($user->id == Auth::user()->id) { 
     return view('home'); 
    } else { 
     return redirect('home'); 
    } 
} 

public function update(User $user, EditUserRequest $request) 
{ 
    // if owner is posts creator (collection id matches user id) 
    if ($user->id == Auth::user()->id) { 
     $user->update($request->all()); 
     return redirect('home'); 
    } else { 
     return redirect('home'); 
    } 
} 

EditRequestController

<?php 
namespace App\Http\Requests; 
use App\Http\Requests\Request; 

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

    public function rules() 
    { 
     return [ 
      'description' => 'required', 
     ]; 
    } 
} 

dd ($ user)

User {#142 ▼ 
    #fillable: array:3 [▼ 
    0 => "name" 
    1 => "email" 
    2 => "password" 
    ] 
    #hidden: array:2 [▼ 
    0 => "password" 
    1 => "remember_token" 
    ] 
    #connection: null 
    #table: null 
    #primaryKey: "id" 
    #perPage: 15 
    +incrementing: true 
    +timestamps: true 
    #attributes: array:9 [▼ 
    "id" => 1 
    "name" => "Oliver Williams" 
    "email" => "[email protected]" 
    "description" => "lorem ipsum nonsense" 
    "password" => "$2y$10$c65lDNJ0V8ibYT4QD6cnk.HmXPwBqlskHWzOzKi1vOlNKVR48y0iS" 
    "remember_token" => "1e6Il0T1rjQQMKSAn09Gd8FLdh0CcYTs4Xd7B6IYUp02rNJ9IpSpV374kwRg" 
    "created_at" => "2016-02-17 23:37:39" 
    "updated_at" => "2016-02-18 00:48:44" 
    "time" => "0000-00-00 00:00:00" 
    ] 
    #original: array:9 [▼ 
    "id" => 1 
    "name" => "Oliver Williams" 
    "email" => "[email protected]" 
    "description" => "lorem ipsum nonsense" 
    "password" => "$2y$10$c65lDNJ0V8ibYT4QD6cnk.HmXPwBqlskHWzOzKi1vOlNKVR48y0iS" 
    "remember_token" => "1e6Il0T1rjQQMKSAn09Gd8FLdh0CcYTs4Xd7B6IYUp02rNJ9IpSpV374kwRg" 
    "created_at" => "2016-02-17 23:37:39" 
    "updated_at" => "2016-02-18 00:48:44" 
    "time" => "0000-00-00 00:00:00" 
    ] 
    #relations: [] 
    #visible: [] 
    #appends: [] 
    #guarded: array:1 [▼ 
    0 => "*" 
    ] 
    #dates: [] 
    #dateFormat: null 
    #casts: [] 
    #touches: [] 
    #observables: [] 
    #with: [] 
    #morphClass: null 
    +exists: true 
    +wasRecentlyCreated: false 
} 

dd ($ user-> update ($ request-> all()));

true 
+0

Pouvez-vous 'dd ($ user-> update ($ request-> all()))' et 'dd ($ user)'? –

+0

Ajouté au bas de la publication - j'espère que je l'ai fait correctement - n'était pas tout à fait sûr de ce que je regardais tbh :) – Ollie

+0

Cela signifie, '$ user-> update ($ request-> all())' était un succès. 'dd ($ user)' montre l'objet Utilisateur. –

Répondre

0

Ce ne sera pas applicable à tout le monde - donc je ne suis pas sûr si elle se qualifie comme une réponse - mais je n'ai pas ajouté la nouvelle ligne au tableau « remplissable » dans « User.php » - ce qui signifie qu'il ne peut pas être assigné en masse.

Je suis un numpty. Merci à tous :)