我是Laravel的初学者,我已经创建了此代码,用于将图像的订单号更改存储到数据库中的实践。但是我将值存储在属性中。这里的情况是使用“可排序”功能jQuery设置图像的订单号。
我曾尝试在Internet上进行一些搜索,但是大多数情况下,他们使用<script>
$('.sort-list').sortable({
axis: 'y',
opacity: 0.7,
cursor: 'pointer',
update: function (event, ui) {
$(this).children().each(function (index) {
if ($(this).attr('data-position') != (index+1)) {
$(this).attr('data-position', (index+1)).addClass('updated');
}
});
saveNewPositions();
}
});
function saveNewPositions() {
var positions = [];
$('.updated').each(function () {
positions.push([$(this).attr('data-index'), $(this).attr('data-position')]);
$(this).removeClass('updated');
});
$.ajax({
url: "{{ route('/admin/setCarouselOrder') }}",
method: 'GET',
dataType: 'text',
data: {
update: 1,
positions: positions
}, success: function (response) {
console.log(response);
}
});
}
来存储新订单号的值。我很好奇,是否有可能从属性中获取数据。
这是我的代码:
HTML:
if (isset($_POST['update'])) {
foreach($_POST['positions'] as $position) {
$index = $position[0];
$newPosition = $position[1];
$conn->query("UPDATE country SET position = '$newPosition' WHERE id='$index'");
}
exit('success');
}
所以我使用data-index和data-position属性存储到数据库中。
这是我的jQuery和Ajax:
public function setCarouselOrder(Request $r) {
$result = Carousel::find($r->id);
$newNumber = $r->data-position;
foreach($result as $data)
{
$data->order_number=$newNumber;
}
}
如果这是PHP Native ,我将使用以下代码:
Route::get('/admin/setCarouselOrder', 'AdminController@setCarouselOrder')->name('/admin/setCarouselOrder')
我已经在控制器上进行了试用:
{{1}}
为供您参考,我正在使用“模型”访问名为“ Carousel”的数据库。 我在laravel上的路线是:
{{1}}
但是我对如何在laravel控制器上实现这一点感到困惑?请帮助我找出方法。这里需要解决方案。
非常感谢
答案 0 :(得分:0)
在控制器中使用以下功能,
注意:请不要忘记添加use Illuminate\Http\Request;
public function setCarouselOrder(Request $request){
foreach($request->positions as $position) {
$index = $position[0];
$newPosition = $position[1];
$affectedRows = Country::whereId($index)->update(['position' => $newPosition]);
}
}
您的路线(使用POST提交表单提交网络服务)
Route::post('/admin/setCarouselOrder', 'AdminController@setCarouselOrder')->name('admin.setCarouselOrder')
假设您有一个Country.php
模型文件
希望能有所帮助。如果您需要更多说明,请在评论中让我知道