首页 > 解决方案 > 使用占位符从 laravel 中的模型中获取价值

问题描述

我会使用占位符系统从数据库中获取值。

假设我有这个字符串:

PB/[[document.protocol_number]]/[[user.code]]

我需要用模型上的对应关系替换 [[ 和 ]] 内的占位符。

例如:

[[document.protocol_number]]

必须从模型“文档”中获取“protocol_number”列。

你知道已经退出了一些事情来做这项工作吗?有任何想法吗?

非常感谢!

标签: laravelmodel-view-controllermodelplaceholder

解决方案


大家好,我采用了这种方式:我创建了一个函数来解码我的占位符,如下所示:

function placeholder_decode($placeholder, $document)
{
    $variables['#user.code#'] = Auth::user()->code;
    $variables['#document.protocol_number#'] = str_pad($document->protocol_number, 4, "0", STR_PAD_LEFT);
    $variables['#document.address.name#'] = $document->address->name;
    $variables['#document.subject#'] = $document->subject;
    $variables['#document.date#'] = Carbon::createFromFormat("Y-m-d H:i:s", $document->protocol_date)->format("d/m/Y");
    $variables['#document.protocol_number_view#'] = $document->protocol_number_view;
    $variables['#company.name#'] = Auth::user()->company->name;

    $string = json_decode(str_replace(array_keys($variables), array_values($variables), $placeholder));

    return $string[0]->value;

}

我不喜欢返回方式,还有其他建议吗?

另一个问题是这条线

$variables['#document.protocol_number_view#'] = $document->protocol_number_view;

将访问器调用到document模型中。这给我一个错误...


推荐阅读