Laravel изменить входное значение
В laravel мы можем получить входное значение через Input::get('inputname')
. Я пытаюсь изменить значение, делая это Input::get('inputname') = "new value";
. Но затем я получаю сообщение об ошибке, в котором говорится: Can't use function return value in write context
.
Можем ли мы изменить входное значение так, чтобы при последующем вызове Input::get('inputname')
получить новое измененное значение?
Спасибо.
5 answers
Вы можете использовать Input::merge()
для замены отдельных элементов.
Input::merge(['inputname' => 'new value']);
Или используйте Input::replace()
для замены всего входного массива.
Input::replace(['inputname' => 'new value']);
Вот ссылка на документацию
Если вы хотите сделать это в Laravel 5, вы можете использовать метод merge()
из класса Request
:
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.
}
}
}
Если вы имеете в виду, что хотите перезаписать входные данные, вы можете попробовать сделать:
Input::merge(array('somedata' => 'SomeNewData'));
Попробуйте это, это поможет вам.
$request->merge(array('someIndex' => "yourValueHere"));
Я также нашел эту проблему, я могу решить ее с помощью следующего кода:
public function(Request $request)
{
$request['inputname'] = 'newValue';
}
С уважением