Кто-нибудь может мне помочь? Объект класса Illuminate \ Database \ Eloquent \ Builder не может быть преобразован в строку - PullRequest
0 голосов
/ 28 января 2020

Понятия не имею, почему мой код не работает. Вот код.

date_default_timezone_set('Asia/Jakarta');
    $pk1 = Presensi::select('pukul1');
    $pk2 = Presensi::select('pukul2');

    $pk1 = Carbon::createFromFormat('H-i-s', $pk1);
    $pk2 = Carbon::createFromFormat('H-i-s', $pk2);
    $t_jam = $pk1->diffInHours($pk2);
    $presensi->update(
      [
        'jam_kerja_2' => $request -> jk1,
        'pukul2' => Carbon::now(),
        'Total' => $t_jam
      ]
    );
    return redirect()->route('admin.presensi.index');

И модель / миграция выглядела так

Schema::create('presensis', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->integer('karyawan_id')->nullable()->unsigned();
        $table->String('nama');
        $table->String('jam_kerja_1', 10)->nullable();
        $table->Time('Pukul1')->nullable();
        $table->String('jam_kerja_2', 10)->nullable();
        $table->Time('Pukul2')->nullable();
        $table->String('Total')->nullable();
        $table->timestamps();
    });

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Поскольку ваши типы Pukul1 и Pukul2 имеют тип Time, его формат равен H:i:s;

И вы не взяли тайм-аут. Вам нужно использовать команду «получить запись» и получить значение ее атрибута.

Таким образом, вам нужно изменить свой код так:

$pk1 = Presensi::select('pukul1')->first()->pukul1;
$pk2 = Presensi::select('pukul2')->first()->pukul2;

$pk1 = Carbon::createFromFormat('H:i:s', $pk1);
$t_jam = $pk1->diffInHours($pk2);
0 голосов
/ 28 января 2020

Используя select, вы еще не получаете информацию от модели. Вам нужно использовать:

$pk1 = Presensi::select('pukul1')->first();
$pk2 = Presensi::select('pukul2')->first();

таким образом, вы получите первый элемент, если вы хотите, чтобы все элементы выполняли условие, которое вы должны использовать:

$pk1 = Presensi::select('pukul1')->get();
$pk2 = Presensi::select('pukul2')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...