Laravel改变input值
在laravel中,我们可以通过Input::get('inputname')
获取input值。 我尝试通过执行此Input::get('inputname') = "new value";
来更改Input::get('inputname') = "new value";
。 但是,然后,我收到错误消息说Can't use function return value in write context
。
是否有可能改变input值,以便以后调用Input::get('inputname')
会得到新的修改值?
谢谢。
您可以使用Input::merge()
来replace单个项目。
Input::merge(['inputname' => 'new value']);
或者使用Input::replace()
来replace整个input数组。
Input::replace(['inputname' => 'new value']);
这是一个链接到文档
如果你的意思是你想覆盖input数据,你可以试试:
Input::merge(array('somedata' => 'SomeNewData'));
如果您想在Laravel 5中执行此操作,可以使用Request
类中的merge()
方法:
class SomeController extends Controller { public function someAction( Request $request ) { // Split a bunch of email addresses // submitted from a textarea form input // into an array, and replace the input email // with this array, instead of the original string. if ( !empty( $request->input( 'emails' ) ) ) { $emails = $request->input( 'emails' ); $emails = preg_replace( '/\s+/m', ',', $emails ); $emails = explode( ',', $emails ); // THIS IS KEY! // Replacing the old input string with // with an array of emails. $request->merge( array( 'emails' => $emails ) ); } // Some default validation rules. $rules = array(); // Create validator object. $validator = Validator::make( $request->all(), $rules ); // Validation rules for each email in the array. $validator->each( 'emails', ['required', 'email', 'min: 6', 'max: 254'] ); if ( $validator->fails() ) { return back()->withErrors($validator)->withInput(); } else { // Input validated successfully, proceed further. } } }
试试这个,它会帮助你。
$request->merge(array('someIndex' => "yourValueHere"));