晚上好,
我遇到了一个查询更新的问题,它没有返回错误,但也没有更新定义字段用户的值。我尝试删除foreach并将特定元素添加到查询中,如下所示,但这也没有影响字段结果。
$UserUpdate = DB::table('users')->where('id', '=', 3)->update(array('StockAcc' => 6));
控制器
namespace App\Http\Controllers;
use \View as View;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\HTTP\Request;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class TransController extends BaseController
{
public function Trans(Request $Return)
{
$id = $Return->input('id');
$uid = $Return->input('uid');
$Math = $Return->input('Math');
$Pin = $Return->input('Pin');
$Buy = $Return->input('Buy');
$Sell = $Return->input('Sell');
/*
* Querys for DB results
*/
$User = DB::Table('users')->where('id', $uid);
foreach ($User as $item) {
$Final = $Buy * $Math;
$NewMoney = $Final - $item->StockAcc;
$UserUpdate = DB::table('users')
->where('id', '=', $uid)
->update(array('StockAcc' => $NewMoney));
}
}
}
路由
Route::get('/Display', array(
'middleware' => 'auth',
'uses' => 'StockController@Display'
));
Route::post('/test', function(){
});
视图:
{!!Form::open(array('action' => 'TransController@Trans', 'url' => ' '))!!}
App\User::where('id', $uid)->update(['StockAcc' => $NewMoney]);
这样访问时,应该在_model_上使用update
方法,但由于您正在使用DB
模型进行查找,所以我不认为它会起作用。尝试按照我上面展示的方式进行更新...您还需要包括use App\User
(如果需要更改则更改)。 - camelCaseupdate
方法生效,您必须在模型中设置$guarded
或$fillable
之一。默认情况下,它受到批量更新的保护。 - camelCase