#mysql #laravel
#mysql #laravel
Вопрос:
public function store($request)
{
return DB::table('website_setup')->select('header_logo')->insertGetId([
'value' => $request->header_logo
]
);
}
таблица
Schema::create('website_setup', function (Blueprint $table) {
$table->id();
$table->string('key');
$table->longText('value')->nullable();
$table->timestamps();
});
И некоторые ключи уже созданы в таблице базы данных
Комментарии:
1. Вы хотите сказать, обновить значение для существующего ключа?
2. ДА. сначала есть нулевое значение
3. хорошо, я понимаю, и я думаю, что вы новичок в laravel, поэтому предлагаю проверить, как работает Laravel eloquent model и
updateOrCreate
метод.4. попробуйте эту модель::где(‘key’, ‘header_logo’)-> обновить([‘value’ => $request-> header_logo])
Ответ №1:
Вы можете использовать upsert()
метод для вставки новых записей и обновления существующих записей новыми значениями, которые вы укажете.
public function store($request)
{
return DB::table('website_setup')->upsert([
'value' => $request->header_logo
]);
}
Или использовать update()
. Подобно методу insert, метод update принимает массив столбцов и значений, которые указывают столбцы, подлежащие обновлению.
public function store($request, $id)
{
return DB::table('website_setup')
->where('id', $id)
->update([
'value' => $request->header_logo
]);
}