在laravel模型中创建常量,同时在数组中使用其他常量作为键
我想在laravel模型中创建一个多维数组常量。数组键应该是同一个模型或另一个模型中定义的另一个常量。比如说在laravel模型中创建常量,同时在数组中使用其他常量作为键,laravel,Laravel,我想在laravel模型中创建一个多维数组常量。数组键应该是同一个模型或另一个模型中定义的另一个常量。比如说 const MASTER_PRODUCT_COMMERCIAL_VEHICLE = 'PR00000001'; const MASTER_PRODUCT_LOAN_AGAINST_PROPERTY = 'PR00000002'; const TENURE_LIMIT = [ 'PR00000001' => // want to define
const MASTER_PRODUCT_COMMERCIAL_VEHICLE = 'PR00000001';
const MASTER_PRODUCT_LOAN_AGAINST_PROPERTY = 'PR00000002';
const TENURE_LIMIT = [
'PR00000001' => // want to define const MASTER_PRODUCT_COMMERCIAL_VEHICLE here
[
'min' => '12',
'max'=>'60'
],
'PR00000002' => // want to define const MASTER_PRODUCT_LOAN_AGAINST_PROPERTY here
[
'min' => '180',
'max'=>'240'
]
];
您可以使用
self
引用同一类上的常量
classmymodel扩展了模型{
const MASTER_PRODUCT_COMMERCIAL_VEHICLE='PR00000001';
const MASTER_PRODUCT_LOAN_针对财产='PR00000002';
常数任期限制=[
self::MASTER\u PRODUCT\u COMMERCIAL\u VEHICLE=>[
…你的数据。。。
],
self::主产品贷款针对物业=>[
…你的数据。。。
],
];
}
如果它们在不同的类上,只需使用类名而不是“self”:
类常量{
const MASTER_PRODUCT_COMMERCIAL_VEHICLE='PR00000001';
const MASTER_PRODUCT_LOAN_针对财产='PR00000002';
}
使用App\Constants;//这里放置常量类的路径
类MyModel扩展了模型{
常数任期限制=[
常量::主车\产品\商用车=>[
…你的数据。。。
],
常量::主产品贷款与财产=>[
…你的数据。。。
],
];
}
我的答案与@gbalduzzi非常相似,只是我想更具体地指定如何访问数组(&而且我几乎完成了我的答案:)
您可以创建一个类来定义所有常量。
比如说ProductConstant.php
class ProductConstant{
const MASTER_PRODUCT_COMMERCIAL_VEHICLE = 'PR00000001';
const MASTER_PRODUCT_LOAN_AGAINST_PROPERTY = 'PR00000002';
const TENURE_LIMIT = [
self::MASTER_PRODUCT_COMMERCIAL_VEHICLE => [
'min' => '12',
'max'=>'60'
],
self::MASTER_PRODUCT_LOAN_AGAINST_PROPERTY => [
'min' => '180',
'max'=>'240'
]
];
}
然后你可以在其他课堂上使用它
use App\ProductConstant;
$minmaxarray = ProductConstant::TENURE_LIMIT[ProductConstant::MASTER_PRODUCT_COMMERCIAL_VEHICLE];
//will give ['min' => '12', 'max'=>'60' ] as output.
您必须创建一个函数并调用该函数以获取变量,如下所示:
class A{
const MASTER_PRODUCT_COMMERCIAL_VEHICLE = 'PR00000001';
const MASTER_PRODUCT_LOAN_AGAINST_PROPERTY = 'PR00000002';
public static function tenure_limit()
{
return [
static::MASTER_PRODUCT_COMMERCIAL_VEHICLE =>
[
'min' => '12',
'max'=>'60'
],
static::MASTER_PRODUCT_LOAN_AGAINST_PROPERTY =>
[
'min' => '180',
'max'=>'240'
]
];
}
}
然后像这样使用:
A::tenure_limit();
我同意,这是访问阵列的一种好方法