无法将类stdClass的对象转换为int Laravel 5.6

时间:2018-07-09 10:24:35

标签: php mysql laravel

我想从laravel 5.6中的数据库中检查记录,但收到消息“类stdClass的对象无法转换为int”。

  $pengoreksi = DB::table('peserta')->latest('pengoreksi')->first();

  if($pengoreksi <= 8){
    $korektor = $pengoreksi++;
  }
  else {
    $korektor = 1;
  }

3 个答案:

答案 0 :(得分:2)

根据文档

如果只需要从数据库表中检索一行,则可以使用第一种方法。此方法将返回一个StdClass对象:

$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;

不能直接使用$ pengoreksi,首先将值存储在任何变量中,然后使用它。

$pengoreksi = DB::table('peserta')->latest('pengoreksi')->first();
$pen = $pengoreksi->pengoreksi;
  if($pengoreksi <= 8){
    $korektor = $pen++;
  }
  else {
    $korektor = 1;
  }

答案 1 :(得分:0)

在这一行中,您将获得包含许多列的数据库行,并添加列名

$pengoreksi = DB::table('peserta')->latest('pengoreksi')->first()->{**COLUMN_NAME**};

答案 2 :(得分:0)

这不起作用,因为您将检索一个对象。您需要访问对象中的值才能访问您的号码。

$pengoreksi = DB::table('peserta')->latest('pengoreksi')->first();
//If you have saved pangoreksi as a string in your database you must type hint (int) on $pengoreksi->pangoreksi 
if($pengoreksi->pangoreksi <= 8){
    $korektor = $pengoreksi->pangoreksi++;
}
else {
    $korektor = 1;
}