【问题标题】:laravel 4 modify an input value inside controller [duplicate]laravel 4修改控制器内的输入值[重复]
【发布时间】:2014-04-24 04:54:29
【问题描述】:

好的,这个有点棘手和不寻常,但我需要为我的一个项目这样做。

所以我有 2 条路线:

Route::get('table/edit',  array('uses'=>'CompanyController@editTable'));

Route::post('table/update',  array('uses'=>'CompanyController@editTableAction'));

现在我要存储数据的数据库表中的字段是动态的,所以我必须利用:

Input::all(); 

方法。我的表单中有一个隐藏的输入

<input type="text" name="database_field_name_user_friendly" value="User Input Some Name" />

<input type="hidden" name="database_field_name" value="" />

现在,如您所见,

Input::get('database_field_name');

为空。有没有办法可以在控制器内设置这个输入框的值?我需要处理来自另一个输入字段 database_field_name_user_friendly 的值。我将运行正则表达式以使其成为有效的 MySQL 字段名称。

任何帮助将不胜感激。

【问题讨论】:

  • 对于像我这样想要答案的人Request::instance()-&gt;query-&gt;set('key','value');

标签: php mysql regex laravel-4


【解决方案1】:

我在发布问题后得到了解决方案:p

希望这对其他人有帮助!真的很容易。在你的控制器内部

让我们处理输入

$database_table_name = strtolower(Input::get('account_database_table_name'));
//make alphaunermic
$database_table_name = preg_replace("/[^a-z0-9_\s-]/", "", $database_table_name);
//Clean multiple dashes or whitespaces
$database_table_name = preg_replace("/[\s-]+/", " ", $database_table_name);
//Convert whitespaces and underscore to dash
$database_table_name = preg_replace("/[\s_]/", "_", $database_table_name);

然后简单地设置值!使用 Laravel Input::merge 方法

 Input::merge(array('account_database_table_name'=>$database_table_name));

谢谢!

【讨论】:

  • 感谢您回来回答。
猜你喜欢
  • 2013-08-20
  • 2013-09-05
  • 2018-03-12
  • 2014-10-12
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
相关资源
最近更新 更多