OctoberCMS应该抛出错误吗?

时间:2018-01-27 20:36:47

标签: laravel octobercms

如果我(错误地)定义了belongsToMany,如下所示(注意表格后面的密钥):

for (var i =1; i<=11; i=i+1){ // our loop.
   console.log('I Love Making Pizza'); //our loop body
}

我可以查看该页面,不会抛出任何错误。但是透视数据没有显示。

如果我将上面的内容更改为此(使用枢轴键后的],我打算将其更改为:

public $belongsToMany = [
  'phonetypes' => [
      'NigglesLogic\Suitespots\Models\Phonetype',
      'table' => 'niggleslogic_suitespots_contact_phonetypes'],
      'pivot' => ['phone_number']
];

刷新页面时显示数据透视数据。

我意识到我输错了但是我应该在OctoberCMS中至少警告我这种情况吗?

1 个答案:

答案 0 :(得分:1)

嗯,10月CMS的代码结构主要检查配置,如果格式不正确,那么就忽略了那个。

为什么?:因为10月CMS基于Laravel,并且所有关系配置都传递给Laravel,然后它将初始化关系。 因此很难预测用户会犯哪种错误,只需使用配置所需的密钥而忽略休息就很容易。

  

所以在你的情况下:( 我已经用适当的结构重写你的代码

public $belongsToMany = [
  'phonetypes' => [
     'NigglesLogic\Suitespots\Models\Phonetype',
     'table' => 'niggleslogic_suitespots_contact_phonetypes'
   ],
  'pivot' => ['phone_number']
];

你可以看到重组后看起来我们已经定义了 2个关系,一个是phonetypes和其他pivot,所以当我们尝试获取其中一个< BR />

在第一种情况下[phonetypes] :它无法从表中找到正确的关系数据,但是表存在,因此返回 null not an error
在第二种情况下[pivot] :我们没有使用它,因为我们不认为它是关系,但如果我们尝试使用它,它将找不到表phone_number所以它可能{{ 1}}。

为了检测错误,我们需要更可预测的行为 [是的10月CMS可能会向您显示警告,但要显示警告他们需要编写更多代码,如果他们检查所有内容,代码大小似乎会加倍:(]

如果我们定义路线,

(我们无法对此显示警告):

throw an error

请注意,我错误地写了 / som-item 但是,我需要使用 / some-item url {{1} } 无法向我发出关于此的警告作为其正确路线,它会告诉我 / some-item 未定义错误但它不会告诉我那个你拼写错误的家伙警告:)

[在我们在代码中获得 AI之前,我们不会看到警告:)]