eloquent получить всю строку таблицы и отредактировать поле - PullRequest
0 голосов
/ 11 декабря 2018

Я новичок в Laravel и пытаюсь использовать Eloquent для редактирования поля для всех строк таблицы MySQL.

Итак, я создаю это:

<?php

namespace App\Http\Controllers;
use App\Mining;
use DB;

class FrontendController extends Controller{
    public function cronDiff(){
        $basic = GeneralSettings::first();
        $row = Mining::all()->whereStatus(1)->get();
        foreach ($row as $coins){
            $code = Mining::where('coin_code', $coins->coin_code)->get();
            $risultato = difficolta($code);
            DB::table['minings']->insert('coin_code' => $code); 
        }
    }
}

И у меня есть таблица minings, например:

id->int
name->varchar
coin_code->varchar
coin_diff->varchar
status->tinyint

Но я не могу обновить coin_diff, используя значение $risultato (взято из другой функции). Можете ли вы помочь узнать, где яя не прав?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Это должно работать следующим образом: Mining::update(['coin_code' => $code]) если у вас есть условия, вы можете связать их перед обновлением.

Кроме того, вам нужно иметь столбцы для свойства $ fillable.Итак, я не знаю, какую ошибку вы получите, но это может быть из-за этого.

0 голосов
/ 11 декабря 2018

Если вы хотите обновить, то почему вы используете вставку?!

Если вы хотите обновить одну строку, измените код DB::table['minings']->insert('coin_code' => $code); на $coins->update(['coin_code' => $risultato]);

И убедитесь, что $risultato имеет строковое значение

0 голосов
/ 11 декабря 2018

попробуйте использовать ->update('coin_code' => $code); вместо ->insert

Я думаю, что это решение будет лучше:

$minings = DB::table('minings')->get();

$minings->coin_code = $code;
$minings->update();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...