Laravel/PHP显示变量的错误输出
使用Laravel5.4和PHP7.0+,MySQL5.7,我有一个查询,返回一个包含正确信息的数组 propoffice模型Laravel/PHP显示变量的错误输出,php,mysql,laravel,Php,Mysql,Laravel,使用Laravel5.4和PHP7.0+,MySQL5.7,我有一个查询,返回一个包含正确信息的数组 propoffice模型 namespace App\models\core; class propoffice extends \App\Model { protected $primaryKey = 'officeID'; } 这是我最初的疑问 $officeList=propoffice::select('officeID','xOfficeID') ->ord
namespace App\models\core;
class propoffice extends \App\Model
{
protected $primaryKey = 'officeID';
}
这是我最初的疑问
$officeList=propoffice::select('officeID','xOfficeID')
->orderBy('officeID','desc')
->take(1)
->get();
有很多记录,但让我们看一看。这就是为什么我现在有这个想法
我明白了
运行循环
foreach($officeList as $the){
echo $the->officeID;
}
我看到的不是123,而是officeID字段为0,但xOfficeID字段为123
我没有javascript或jquery运行变化的值或任何复杂的事情
在数组和输出之间没有其他代码,因此它必须归结为一些我没有直接参与的laravel/php过程
讨论中的字段实际上是其他地方的字段名,并且值不匹配。我觉得这是根本,但不知道如何或在哪里看
编辑:
我让我的模型将primaryKey设置为officeID,即varchar。在拉威尔,primaryKey应该是一个整数,这让我忘记了。因此,原始数据很好,但是当在输出中返回值时,模型将非整数值变为0,因为模型和表之间存在冲突 在模型中将
officeID
设置为主键,但在表中它是一个varchar列。模型期望primaryKey列为整数
这会给你带来错误。所以你要么
让我看看我是否理解,officeID字段在另一个表上?那么,您是从模型中的函数获取此字段的吗?请显示
$officeList
的代码。问题显示了我希望循环或查询值的确切数据。officeID字段正在转换为零或1,而另一个字段按预期显示。唯一的区别是字段名。所以我在暗中捅了一刀,可能是因为在另一个表中存在字段名。是的,在您的场景中,考虑一下这个。当我转到$the->officeID时,我看到0,尽管数据显示为123。如果我使用$the->xOfficeID,我会看到123,这与我应该看到的完全一样。所以这个officeID领域因为某种原因得到了一些特殊的处理,这就是我想要做的understand@weekapaug然后生成更好的mcve。这仅仅是一个特定的模型为officeID返回了0,还是全部返回了0?你之前说过officeID来自另一个表,现在它不见了,你的dd显示不同,因此你的问题中有很多混乱/冲突的信息。我在输出时没有遇到问题。我在输出匹配结果实际显示的内容时遇到问题。在上面的示例中,我的结果是officeID=0,而不管结果显示为123。然而,我确实在其他字段名称上看到了正确的数据,这是奇数部分。如果我在循环的开头插入一个dd($the),我就会看到预期的结果及其正确性。如果我插入一个dd(->officeID),它将显示为零。因此,$the->officeID期间发生了一些在dd($the)期间不会发生的变化;什么进程会激活此行为?某些情况会发生变化,因为--我假设--$the->officeID为false(0)--实际上我应该抛出一个错误顺便说一句--@weekapagug您可以尝试使用var\u dump(->officeID)代码>并与我共享输出?我现在看到这个。。。int(0)0。如果int(0)就是这个意思,那么它不是整数。这可能有助于。。。某处某物出于某种原因需要一个整数?有一些ID是整数,它们正在显示。现在,为了理解过程的哪一部分使它期望任何特定的东西??如果我使用officeID primaryKey,它期望的是一个整数。我需要使它成为一个primaryKey,但不是整数。你的提问帮了我的忙。让你的答案是,我有我的primaryKey在模型中设置为非整数字段,并告诉我如何做,我可以接受你的答案!!
#attributes: array:2 [▼
"officeID" => "123"
"xOfficeID" => "123"
]
#original: array:2 [▼
"officeID" => "123"
"xOfficeID" => "123"
]
foreach($officeList as $the){
echo $the->officeID;
}