खोज…
परिचय
कस्टम अनुरोध (या प्रपत्र अनुरोध) उन स्थितियों में उपयोगी होते हैं जब कोई नियंत्रक विधि को हिट करने से पहले किसी अनुरोध को अधिकृत और मान्य करना चाहता है।
एक रिकॉर्ड के निर्माण और अद्यतन के दो व्यावहारिक उपयोगों के बारे में सोच सकता है, जबकि प्रत्येक क्रिया में सत्यापन (या प्राधिकरण) नियमों का एक अलग सेट होता है।
फ़ॉर्म अनुरोधों का उपयोग करना तुच्छ है, किसी को अनुरोध वर्ग को विधि में टाइप करना होगा।
वाक्य - विन्यास
- php कारीगर बनाते हैं: अनुरोध name_of_request
टिप्पणियों
नियंत्रक से आपकी मान्यता को अलग करते समय अनुरोध उपयोगी होते हैं। यह आपको यह देखने की अनुमति देता है कि अनुरोध अधिकृत है या नहीं।
अनुरोध बनाना
php artisan make:request StoreUserRequest
php artisan make:request UpdateUserRequest
नोट : आप अपने FormRequests फ़ोल्डर
app/Http/Requests/
Requestapp/Http/Requests/
में रखे जाने के बाद से StoreUser या UpdateUser (बिना अनुरोध परिशिष्ट) जैसे नामों का उपयोग करने पर भी विचार कर सकते हैं।
प्रपत्र अनुरोध का उपयोग करना
उपयोगकर्ता उदाहरण के साथ जारी रखने की अनुमति देता है (आपके पास स्टोर विधि और अद्यतन विधि के साथ नियंत्रक हो सकता है)। FormRequests का उपयोग करने के लिए आप विशिष्ट अनुरोध के प्रकार-संकेत का उपयोग करते हैं।
...
public function store(App\Http\Requests\StoreRequest $request, App\User $user) {
//by type-hinting the request class, Laravel "runs" StoreRequest
//before actual method store is hit
//logic that handles storing new user
//(both email and password has to be in $fillable property of User model
$user->create($request->only(['email', 'password']));
return redirect()->back();
}
...
public function update(App\Http\Requests\UpdateRequest $request, App\User $users, $id) {
//by type-hinting the request class, Laravel "runs" UpdateRequest
//before actual method update is hit
//logic that handles updating a user
//(both email and password has to be in $fillable property of User model
$user = $users->findOrFail($id);
$user->update($request->only(['password']));
return redirect()->back();
}
सत्यापन के बाद पुनर्निर्देशन को संभालना
कभी-कभी आप यह निर्धारित करने के लिए कुछ लॉगिन करना चाह सकते हैं कि उपयोगकर्ता को फ़ॉर्म सबमिट करने के बाद पुनर्निर्देशित किया जाता है। फॉर्म रिक्वेस्ट कई तरह के तरीके देते हैं।
डिफ़ॉल्ट रूप से अनुरोध $redirect
, $redirectRoute
और $redirectAction
में 3 चर घोषित किए जाते हैं।
उन 3 चर के शीर्ष पर आप मुख्य रीडायरेक्ट हैंडलर getRedirectUrl()
को ओवरराइड कर सकते हैं।
नीचे एक नमूना अनुरोध दिया गया है जिसमें बताया गया है कि आप क्या कर सकते हैं।
<?php namespace App;
use Illuminate\Foundation\Http\FormRequest as Request;
class SampleRequest extends Request {
// Redirect to the given url
public $redirect;
// Redirect to a given route
public $redirectRoute;
// Redirect to a given action
public $redirectAction;
/**
* Get the URL to redirect to on a validation error.
*
* @return string
*/
protected function getRedirectUrl()
{
// If no path is given for `url()` it will return a new instance of `Illuminate\Routing\UrlGenerator`
// If your form is down the page for example you can redirect to a hash
return url()->previous() . '#contact';
//`url()` provides several methods you can chain such as
// Get the current URL
return url()->current();
// Get the full URL of the current request
return url()->full();
// Go back
return url()->previous();
// Or just redirect back
return redirect()->back();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
}