Laravel更改输入值

时间:2014-04-15 02:24:28

标签: php input laravel-4

在laravel中,我们可以通过Input::get('inputname')获取输入值。我尝试通过执行此Input::get('inputname') = "new value";来更改值。但是,我收到错误消息Can't use function return value in write context

我们是否可以更改输入值,以便以后调用Input::get('inputname')时可以获得新修改的值?

感谢。

6 个答案:

答案 0 :(得分:121)

您可以使用Input::merge()替换单个项目。

Input::merge(['inputname' => 'new value']);

或使用Input::replace()替换整个输入数组。

Input::replace(['inputname' => 'new value']);

这是link to the documentation

答案 1 :(得分:10)

如果您希望在Laravel 5中执行此操作,可以使用class Assignment: NSObject, NSCoding { var title = "" var notes = "" func encodeWithCoder(aCoder: NSCoder) { // Methods aCoder.encodeObject(title, forKey: "Title") aCoder.encodeObject(notes, forKey: "notepad") } required init(coder aDecoder: NSCoder) { // Methods title = aDecoder.decodeObjectForKey("Title") as! String notes = aDecoder.decodeObjectForKey("notepad") as! String super.init() } override init() { super.init() } } 类中的merge()方法:

Request

答案 2 :(得分:9)

如果您的意思是要覆盖输入数据,可以尝试执行以下操作:

Input::merge(array('somedata' => 'SomeNewData'));

答案 3 :(得分:5)

试试这个,它会对你有帮助。

$request->merge(array('someIndex' => "yourValueHere"));

答案 4 :(得分:1)

我也发现了这个问题,可以通过以下代码解决:

public function(Request $request)
{
    $request['inputname'] = 'newValue';
}

致谢

答案 5 :(得分:0)

我用拉罕的答案来解决我的问题。但是,当我需要与其他数据处于同一级别时,它会将更新的数据嵌套在数组中。我用过:

$request->merge('someIndex' => "yourValueHere");

请注意其他Laravel新手,我使用merge方法在Laravel 7更新表单中考虑了空复选框值。在更新表单上取消选中的复选框不会返回0,它不会在更新请求中设置任何值。结果,该值在数据库中保持不变。如果不存在,则必须检查设置值并合并新值。希望能对某人有所帮助。

只需快速更新。如果用户未选中某个框,而我需要在数据库中输入一个值,则可以在控制器中执行以下操作:

    if(empty($request->input('checkbox_value'))) {
        $request->merge(['checkbox_value' => 0]);
    }