如何编辑laravel集合中的项目

TyF*_*ude 4 php laravel eloquent laravel-5

我是laravel的新手,我运行查询并从数据库中获取行,我想在将它们放入视图之前编辑这些行的列.所以这是我的代码片段:

$callPlans = CustomerCallPlan::whereNotNull('id');

foreach ($callPlans->get() as $callPlan) {
    dd($callPlan);
}
Run Code Online (Sandbox Code Playgroud)

并输出截图:

在此输入图像描述

我需要用' - ' numbertemplate列替换所有'x'字符.

jed*_*ylo 8

如果要始终为模型执行此转换,则只需将以下访问器方法添加到模型类:

public function getNumbertemplateAttribute() {
  return str_replace('x', '-', $this->attributes['numbertemplate']);
}
Run Code Online (Sandbox Code Playgroud)

现在,每次访问$ customerCallPlan-> numbertemplate时,您都将获得转换后的字符串.

否则,只需在获取数据时转换列:

$plans = $callPlans->get()->map(function($plan) {
  $plan->numbertemplate = str_replace('x', '-', $plan->numbertemplate);
  return $plan;
});
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记返回 $plan (2认同)
  • 因为否则,`->map()`方法将返回 null,根据我今天的经验,这正是每个获取的模型实例的结果。在代码块末尾之前添加“return $varName;”来解决此问题。 (2认同)