Formdan bir dizi veri aldığınızda arkada validation işlemi uygularsınız. Validation sonucunda hata varsa, kullanıcıyı eski sayfaya yönlendirip formu tekrar doldurmasını istersiniz.
Kullanıcı formu tekrar doldururken (mesela 7 adet input dolduruyor olsun), sadece 1 inputta yaptığı yanlış sonucunda tüm inputları tekrar doldurmak istemez.
Dolayısıyla bir önceki denemesinde valid olarak doldurduğu alanları kullanıcının önüne koyarsınız. Bu işlemi de dediğiniz gibi redirect->withInput ve Input::old ile yapabilirsiniz.
Eğer create işlemi yapılıyorsa yukarıdaki senaryo gayet güzel ama update işlemi yapılıyorsa dediğiniz gibi biraz kavram karmaşası olabilir. Yönlendirme işleminden sonra invalid değerler için; kullanıcının girdiği invalid değeri mi yoksa DB'de kayıtlı değeri mi göstermek mantıklı?
Benim tercihim DB'deki değeri inputun value kısmına yazmak, inputun altına da kullanıcının yanlış olarak girdiği değerleri göstermek olurdu.
Aşağıdaki kullanım, ilk olarak kullanıcının yanlış girdiği değeri; eğer o değer boşsa DB'deki değeri gir demek.
Input::old('first_name', $user->first_name)
Aşağıdaki kullanımı ise ben de merak ediyorum, Form::text fonksiyonunun 2. parametresi zaten inputun value property'sini dolduruyor. 3. parametre olarak verilen dizide de value olduğu için bir ezme işlemi var gibi görünüyor.
Form::text('first_name', $user->first_name, array('class'=>'form-control', 'id' => 'first_name', 'placeholder'=>'First Name', 'value'=>Input::old('first_name')))
Sizin kullanımınız zaten net, tatava yapmayıp direk sonuca gitmişsiniz ve DB'deki değeri göstermişsiniz