Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel/PHP显示变量的错误输出_Php_Mysql_Laravel - Fatal编程技术网

Laravel/PHP显示变量的错误输出

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

使用Laravel5.4和PHP7.0+,MySQL5.7,我有一个查询,返回一个包含正确信息的数组

propoffice模型

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列为整数

这会给你带来错误。所以你要么

  • 删除propoffice模型上受保护的$primaryKey='officeID'行

  • 如果需要将字段作为主键,请将其设置为整数

  • 了解如何将主键设置为varchar。(坏习惯)


  • 让我看看我是否理解,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;
    }