मैंने उपयोगकर्ता नाम संपादित करने और अद्यतन करने के लिए एक फॉर्म बनाया है। फॉर्म सही ढंग से काम कर रहा है।
हालांकि, यदि उपयोगकर्ता नाम फ़ील्ड को खाली और सबमिट करें, मान्य फ़ंक्शन "आवश्यक" बंद नहीं होता है और त्रुटि प्राप्त करता है:
"SQLSTATE [२३०००]: अखंडता बाधा उल्लंघन: १०४८ कॉलम 'नाम' शून्य नहीं हो सकता"
मुझे नहीं पता कि सत्यापन क्यों काम नहीं करता है। यहाँ मेरा कोड है।
उपयोगकर्ता नामनियंत्रक.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use App\User;
class UsernameController extends Controller
{
public function edit($id)
{
$data = User::findOrFail($id);
return view('username.edit')->with('form',$data);
}
public function update(Request $request, $id)
{
$this->validate($request, ['name' => 'required']);
$form = new User;
$form = User::findOrFail($id);
$form->name = $request->name;
unset($form['_token']);
$form->save();
return redirect('/home/mypage')->with('status','Updated!');
}
}
edit.blade.php
<form action="/username/{{$form->id}}" method="post">
@csrf
@method('PUT')
<input type="hidden" name="id" value="{{$form->id}}">
<p>Username<br>
<input type="text" name="name" value="{{$form->name}}"></p>
@error('name')
<p><span style="color:red;">{{$message}}</span></p>
@enderror
<p><input type="submit" value="Update"></p>
</form>
web.php
Route::resource('username','UsernameController',['only' => ['edit', 'update']]);
1 उत्तर
इसके बजाय निम्नलिखित का प्रयास करें
use use Illuminate\Support\Facades\Validator;
//...
$validator = Validator::make($request->all(), [
'name' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
संपादित करें
आपको यह भी परिभाषित करना चाहिए कि आप किस मॉडल विशेषताओं को बड़े पैमाने पर असाइन करने योग्य बनाना चाहते हैं। आप मॉडल पर $fillable
प्रॉपर्टी का उपयोग करके ऐसा कर सकते हैं।
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name'];
संबंधित सवाल
नए सवाल
laravel
लारवेल एक स्वतंत्र, ओपन-सोर्स PHP वेब फ्रेमवर्क है, जो टेलर ओटवेल द्वारा निर्मित और मॉडल-व्यू-कंट्रोलर (एमवीसी) आर्किटेक्चरल पैटर्न और सिम्फनी पर आधारित वेब अनुप्रयोगों के विकास के लिए अभिप्रेत है। लारवेल का स्रोत कोड GitHub पर होस्ट किया गया है और MIT लाइसेंस की शर्तों के तहत लाइसेंस प्राप्त किया गया है।