gpt4 book ai didi

php - Laravel/Eloquent - 列名作为变量

转载 作者:行者123 更新时间:2023-12-02 20:39:46 27 4
gpt4 key购买 nike

Eloquent 提供了一种将内容传递到数据库的简便方法

$table_name = new TableName;
$table_name->column_name = "some data";
$table_name->save();

我从一个需要验证的表单中得到了很多数据,所以我想知道是否可以用一个变量替换列名,这样我就可以把它放在某个循环中,然后得到来自数组的名称和数据。

$table_name->$columns[$i] = $data[$i];

(虽然我想不是那样写的)

更新

最后我做了以下事情:

$table_name = new TableName;
$nameArray=[
1 => 'form-name-1',
...
];
$columnArray=[
1 => 'column_name_1',
...
];

for($i=1;$i<=count($nameArray);$i++){
if(logic logic logic) $table_name->{$columnArray[$i]} = $_POST[$nameArray[$i]];
else $table_name->{$columnArray[$i]} = NULL;
}
$table_name->save();

最佳答案

您可以执行以下操作:

1)创造值(value)

   $table_name = new TableName([
"column_name" => "column_value"
]);

2)填充

$table_name = new TableName();
$table_name->fill([
"column_name" => "column_value"
]);

3) 您最初建议的方式:

$valuesMap = [
"column_name" => "column_value"
];
$table_name = new TableName();
foreach ($valuesMap as $column => $value) {
$table_name->{$column} = $value; //The {} are optional in this case
}

请注意,要执行 1 或 2,您放入数组中的所有字段都必须可填写且不 protected 。

关于php - Laravel/Eloquent - 列名作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46234603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com