laravel - 使用占位符从 laravel 中的模型中获取价值
问题描述
我会使用占位符系统从数据库中获取值。
假设我有这个字符串:
PB/[[document.protocol_number]]/[[user.code]]
我需要用模型上的对应关系替换 [[ 和 ]] 内的占位符。
例如:
[[document.protocol_number]]
必须从模型“文档”中获取“protocol_number”列。
你知道已经退出了一些事情来做这项工作吗?有任何想法吗?
非常感谢!
解决方案
大家好,我采用了这种方式:我创建了一个函数来解码我的占位符,如下所示:
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
模型中。这给我一个错误...
推荐阅读
- java - 如何在 Android 中以编程方式设置导航抽屉的背景颜色
- swift - 如何使用swift以编程方式根据数据设置滚动视图的高度
- sql - psql NOW() 获取不同的时区
- powershell - 具有强制和可选参数的函数
- apache - 有没有在 Apache Windows 上设置 ssl 证书的地方?我发现错误 SSLPassPhraseDialog builtin is not supported on Win32
- flutter - 如何使用颤振 http 包设置基本 url 类?
- python - 尝试嵌入 TkInter 时,Matplotlib 3D-plot 不是交互式的或在附加窗口中
- python - 如何在python中通过IP地址跟踪位置
- unity3d - Unity 3D 控制台说:语法错误,“(”预期
- python-3.x - 在python中将文本转换为语音时出错