在Laravel控制器中获取表数据期间,如何在一列上应用操作/功能?



我想获取今天Date的所有数据,但是在获取过程中,我想仅对一列的数据而不是其他列的数据应用操作。此操作来自另一个函数。

$data = Net::whereDate('created_at', Carbon::today())->get();

我有两个选择:

  1. 在获取数据期间,在特定列上调用该函数
  2. 获取数据后,放置一个循环,然后应用该操作并将数据保存到新对象中

在此表中,有一个名为profit的列,我想通过调用encode_code((函数将利润编码为字母表,以保持其他数据不变。

我不知道我该怎么做,如果有人知道,请帮助我。

您可以使用foreach循环从集合中获取每个对象,并为每个对象调用所需的函数。

$data = Net::whereDate('created_at', Carbon::today())->get();
foreach($data as $key => $dat)
{
$data[$key]->profit = encode_code($dat->profit);
}

我认为你应该调用该函数并像这样转动它

我只是不知道你想做什么,所以这是我最好的

$data = Net::whereDate('created_at', Carbon::today())->get();    
foreach($data as $i => $d){
$data[$i]->profit =  encode_code($d->profit);
}

当然,您可以遍历结果并对每一行进行编码,但这会阻止您重用此代码。

相反,您可以将该编码函数直接放入模型中,以便可以在任何地方重用它:

public function getEncodedProfit() {
return encode_code($this->profit);
}

现在,您可以在控制器或视图中的任何位置使用此函数,如下所示:

echo $net->getEncodedProfit();

最新更新