laravel 8 - 我可以访问配置中常量内的变量吗
laravel 8 - can i access a variable inside a constant inside my config
我有一系列用于应用程序的常量字符串,放置在我的配置目录中名为 gameconstants 的文件中
我正在使用 config() 函数获取各种消息,因此该文件看起来与此类似
return [
'furiouspunches' => ' furiously punches ',
'kick' => ' kicks $loser in the junk ',
有没有办法让我访问那个 $loser 变量?我将这些常量用于我正在构建的应用程序的 return 字符串,所以我最终连接了这个 returned 值,最终输出类似于
$winner . config('gameconstants.kick') . $loser
但是字符串并不总是像现在这样很好地演奏,所以我想访问该变量,这样我就可以 return 该字符串的不同变体。
我试过了
配置('gameconstants.kick.$loser')
但这是行不通的。有什么想法吗?
提前致谢。
您需要使用字符串替换,例如
return [
'furiouspunches' => ' furiously punches ',
'kick' => ' kicks {loser} in the junk ',
然后
$string = $winner . str_replace('{loser}', $loser, config('gameconstants.kick'))
您可以使用翻译文件而不是配置文件。翻译文件也支持参数替换。
在 resources/lang/en/strings.php
创建一个文件:
<?php
// resources/lang/en/strings.php
return [
'furiouspunches' => ' furiously punches ',
'kick' => ' kicks :loser in the junk ',
];
然后使用双下划线方法 (__()
) 访问您的字符串,并传入占位符值数组:
$string = $winner . __('strings.kick', ['loser' => $loser]);
您可以阅读 translation documentation and variable substitution here。
根据您的用例,您可能希望在字符串中包含这两项。也许是这样的:
<?php
// resources/lang/en/strings.php
return [
'furiouspunches' => ':subject furiously punches :object',
'kick' => ':subject kicks :object in the junk',
];
然后传入两个替换:
$string = __('strings.kick', ['subject' => $winner, 'object' => $loser]);
我有一系列用于应用程序的常量字符串,放置在我的配置目录中名为 gameconstants 的文件中
我正在使用 config() 函数获取各种消息,因此该文件看起来与此类似
return [
'furiouspunches' => ' furiously punches ',
'kick' => ' kicks $loser in the junk ',
有没有办法让我访问那个 $loser 变量?我将这些常量用于我正在构建的应用程序的 return 字符串,所以我最终连接了这个 returned 值,最终输出类似于
$winner . config('gameconstants.kick') . $loser
但是字符串并不总是像现在这样很好地演奏,所以我想访问该变量,这样我就可以 return 该字符串的不同变体。
我试过了
配置('gameconstants.kick.$loser') 但这是行不通的。有什么想法吗?
提前致谢。
您需要使用字符串替换,例如
return [
'furiouspunches' => ' furiously punches ',
'kick' => ' kicks {loser} in the junk ',
然后
$string = $winner . str_replace('{loser}', $loser, config('gameconstants.kick'))
您可以使用翻译文件而不是配置文件。翻译文件也支持参数替换。
在 resources/lang/en/strings.php
创建一个文件:
<?php
// resources/lang/en/strings.php
return [
'furiouspunches' => ' furiously punches ',
'kick' => ' kicks :loser in the junk ',
];
然后使用双下划线方法 (__()
) 访问您的字符串,并传入占位符值数组:
$string = $winner . __('strings.kick', ['loser' => $loser]);
您可以阅读 translation documentation and variable substitution here。
根据您的用例,您可能希望在字符串中包含这两项。也许是这样的:
<?php
// resources/lang/en/strings.php
return [
'furiouspunches' => ':subject furiously punches :object',
'kick' => ':subject kicks :object in the junk',
];
然后传入两个替换:
$string = __('strings.kick', ['subject' => $winner, 'object' => $loser]);