我是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
(取自其他函数)
你能帮我找出我哪里错了吗?
谢谢。
答案 0 :(得分:0)
尝试使用->update('coin_code' => $code);
代替->insert
我认为这种解决方案会更好:
$minings = DB::table('minings')->get();
$minings->coin_code = $code;
$minings->update();
答案 1 :(得分:0)
它应该像这样工作:Mining::update(['coin_code' => $code])
,如果您有条件,可以在更新之前将其链接。
此外,您需要在模型的$ fillable属性中具有这些列。因此,我不知道您会遇到什么错误,但这可能是由那引起的。
答案 2 :(得分:0)
如果要更新,那么为什么要使用插入?!
如果您要更新一行,请修改您的代码
DB::table['minings']->insert('coin_code' => $code);
至
$coins->update(['coin_code' => $risultato]);
并确保$risultato
具有字符串值