मुझे अपने अनुरोध पैरामीटर के मूल्य को इस तरह बदलना होगा:
$request->name = "My Value!";
मैं इस कोड का उपयोग करता हूं लेकिन काम नहीं करता है:
$request->offsetSet('img', $img);
मुझे अपने अनुरोध पैरामीटर के मूल्य को इस तरह बदलना होगा:
$request->name = "My Value!";
मैं इस कोड का उपयोग करता हूं लेकिन काम नहीं करता है:
$request->offsetSet('img', $img);
जवाबों:
उपयोग करें merge():
$request->merge([
'user_id' => $modified_user_id_here,
]);
सरल! संपूर्ण $request->all()को दूसरे चर में स्थानांतरित करने की आवश्यकता नहीं है ।
की कोशिश:
$requestData = $request->all();
$requestData['img'] = $img;
इसे करने का दूसरा तरीका:
$request->merge(['img' => $img]);
इसके लिए @JoelHinz को धन्यवाद।
यदि आप नेस्टेड डेटा जोड़ना या अधिलेखित करना चाहते हैं:
$data['some']['thing'] = 'value';
$request->merge($data);
यदि आप Request $requestऑब्जेक्ट को इंजेक्ट नहीं करते हैं , तो आप इसके बजाय वैश्विक request()सहायक या \Request::मुखौटा का उपयोग कर सकते हैं$request
RequestL5 के स्रोत कोड पर ध्यान दिया है और मैं इन विधियों को देख सकता हूं। धन्यवाद।
यदि आपको अनुरोध को अनुकूलित करने की आवश्यकता है
$data = $request->all();
आप फ़ील्ड का नाम और मान पास कर सकते हैं
$data['product_ref_code'] = 1650;
और अंत में नया अनुरोध पास करें
$last = Product::create($data);
यदि आपको अनुरोध में किसी संपत्ति को अपडेट करने की आवश्यकता है, तो मैं आपको लारवेल द्वारा उपयोग किए गए अनुरोध वर्ग से प्रतिस्थापित विधि का उपयोग करने की सलाह देता हूं
$request->replace(['property to update' => $newValue]);
यदि आप सत्यापन के लिए कस्टम अनुरोधों का उपयोग करते हैं, तो सत्यापन के लिए डेटा को बदलने के लिए, या डिफ़ॉल्ट डेटा सेट करने के लिए (चेकबॉक्स या अन्य के लिए) ट्रॉइड विधि का उपयोग करें prepareForValidation()।
namespace App\Http\Requests\Admin\Category;
class CategoryRequest extends AbstractRequest
{
protected function prepareForValidation()
{
if ( ! $this->get('url')) {
$this->merge([
'url' => $this->get('name'),
]);
}
$this->merge([
'url' => \Str::slug($this->get('url')),
'active' => (int)$this->get('active'),
]);
}
}
मुझे उम्मीद है कि यह जानकारी किसी के लिए उपयोगी होगी।