質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

514閲覧

データの削除が上手くいかない

bluepiani0788

総合スコア51

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2022/05/14 13:38

前提

あるシステムを作成中なのですが、deleteボタンを押下しても、データ1行の削除が上手くいかない

実現したいこと

deleteボタンを押下された1行分のデータが削除されること

発生している問題・エラーメッセージ

deleteボタンを押下してもデータが削除されず、URLの末尾に?と削除されるはずのデータのIDが表示されるだけである

該当のソースコード

イメージ説明
初期画面
イメージ説明

deleteボタン押下後
IDが1の場合
イメージ説明

@extends('dashboard-layout') @section('content') <h1>ユーザー一覧</h1> <a href="{{ route('admin.users.create') }}" class="btn btn-success">作成</a> <table class="table"> <thead> <tr> <th class="text-center">#</th> <th>ユーザー名</th> <th>メールアドレス</th> </tr> </thead> <tbody> @foreach($users as $user) <tr> <td class="text-center">{{ $user->id }}</td> <td>{{ $user->name }}</td> <td>{{ $user->email }}</td> {{--<td>Develop</td>--}} <td class="td-actions text-right"> <button type="button" rel="tooltip" class="btn btn-success"> <a href="{{ route('admin.users.edit', [$user->id]) }}" class="text-white"><i class="material-icons">edit</i></a> </button> <button type="button" rel="tooltip" class="btn btn-success"> <a href="{{ route('admin.users.index', [$user->id]) }}" class="text-white"><i class="material-icons">delete</i></a> </button> <button type="button" rel="tooltip" class="btn btn-danger"> <i class="material-icons">close</i> </button> </td> </tr> @endforeach </tbody> </table> @endsection
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Service\UserService; //追加 use App\Models\User; class UserController extends Controller { private $user_service; public function __construct(UserService $user_service) { $this->user_service = $user_service; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $users = $this->user_service->getAllUsers(); return view('admin.users.index', ['users' => User::query()->paginate()]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Show the form for deleting the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function delete(Request $request, $id) { $param = ['id' => $request->id]; DB::delete('delete from users where id = :id',$param); return view('admin.users.index', ['users' => $user]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::group(['prefix' => 'admin', 'as' => 'admin.', 'namespace' => 'Admin'], function () { Route::group(['prefix' => 'stores', 'as' => 'stores.'], function () { Route::get('/', 'StoreController@index')->name('index'); Route::get('create', 'StoreController@create')->name('create'); Route::get('{store}/edit', 'StoreController@edit')->name('edit'); Route::patch('{store?}', 'StoreController@update')->name('update'); Route::put('{store?}', 'StoreController@update')->name('create.exec'); }); Route::group(['prefix' => 'coupons', 'as' => 'coupons.'], function () { Route::get('/', 'CouponController@index')->name('index'); Route::get('create', 'CouponController@create')->name('create'); Route::get('{coupon}/edit', 'CouponController@edit')->name('edit'); Route::patch('{coupon?}', 'CouponController@update')->name('update'); Route::put('{coupon?}', 'CouponController@update')->name('create.exec'); Route::get('{coupon?}', 'CouponController@detail')->name('detail'); }); Route::group(['prefix' => 'users', 'as' => 'users.'], function () { Route::get('/', 'UserController@index')->name('index'); Route::get('create', 'UserController@create')->name('create'); Route::get('{user}/edit', 'UserController@edit')->name('edit'); Route::get('{user}/delete', 'UserController@delete')->name('delete'); Route::patch('{user?}', 'UserController@update')->name('update'); Route::put('{user?}', 'UserController@update')->name('create.exec'); }); });

試したこと

UserControllerのdeleteメソッドの中身をこれともう一つのもので試しましたが、どちらもURLのみ変わるという状態

補足情報(FW/ツールのバージョンなど)

・自分のパソコン(Windows10)にDockerをインストール
・Laravel5.8.38(PHP)の開発
・MySQL

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

index.blade.phpの削除ボタンは
<button type="button" rel="tooltip" class="btn btn-danger">
<a href="{{ route('admin.users.destroy', [$user->id]) }}" class="text-white"><i class="material-icons">delete</i></a>
</button>

UserController.phpのdestroyメソッドは
public function destroy($id)
{
$users = User::findOrFail($id);
$users->delete();
return redirect('/admin/users');
}

web.phpは
Route::group(['prefix' => 'users', 'as' => 'users.'], function () {
Route::get('/', 'UserController@index')->name('index');
Route::get('create', 'UserController@create')->name('create');
Route::get('{user}/edit', 'UserController@edit')->name('edit');
Route::get('/destroy/{id}', 'UserController@destroy')->name('destroy');
Route::patch('{user?}', 'UserController@update')->name('update');
Route::put('{user?}', 'UserController@update')->name('create.exec');
});
でできました。

投稿2022/06/23 21:41

bluepiani0788

総合スコア51

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

deleteボタンのリンクが正しいかを確認してみてください。

index.blade.php

1<a href="{{ route('admin.users.index', [$user->id]) }}" class="text-white"><i class="material-icons">delete</i></a> 2

投稿2022/05/14 20:08

ryyy

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問