質問編集履歴

3

画像をコードに

2022/01/12 05:20

投稿

kazukikanomata
kazukikanomata

スコア10

test CHANGED
File without changes
test CHANGED
@@ -143,7 +143,67 @@
143
143
 
144
144
  @endsection
145
145
  ```
146
+ ```Task.php
147
+ <?php
148
+
149
+ namespace App;
150
+
146
- ![Taskモデル](c3278d4ccbf8ff0df88cc5e15e518a4e.png)
151
+ use Illuminate\Database\Eloquent\Model;
147
- ![削除選択時の画面](a03472704fe8e224582dbad3f51d52e9.png)
152
+ use Illuminate\Database\Eloquent\SoftDeletes;
153
+ class Task extends Model
154
+ {
155
+ use SoftDeletes;
156
+ public function user()
157
+ {
158
+ return $this->belongsTo('App\User');
159
+ }
160
+ public function category()
161
+ {
148
- ![削除する→はいを選択した画面](88da63fab77993df2028051993a675f7.png)
162
+ return $this->belongsTo('App\Category');
163
+ }
164
+ // function getPaginateByLimit(int $limit_count = 5)
165
+ // {
166
+ // return $this::with('category')->orderBy('updated_at', 'DESC')->paginate($limit_count);
167
+ // }
168
+
169
+ protected $fillable = [
170
+ 'user_id',
171
+ 'category_id',
172
+ 'content',
173
+ 'due_time',
174
+ 'status',
175
+ 'time',
176
+ ];
177
+ }
178
+
179
+ ```
180
+ ```web.php
181
+ <?php
182
+
183
+ /*
184
+ |--------------------------------------------------------------------------
185
+ | Web Routes
186
+ |--------------------------------------------------------------------------
187
+ |
188
+ | Here is where you can register web routes for your application. These
189
+ | routes are loaded by the RouteServiceProvider within a group which
190
+ | contains the "web" middleware group. Now create something great!
191
+ |
192
+ */
193
+
194
+ Route::get('/', 'PostController@index');
195
+ Route::get('posts/create', 'PostController@create');
196
+ Route::get('/posts/{task}', 'PostController@show');
197
+ Route::post('/posts', 'PostController@store');
198
+ Route::get('/posts/{task}/edit', 'PostController@edit');
199
+ Route::put('/posts/{task}', 'PostController@update');
200
+ Route::delete('/posts/{task}', 'PostController@destory');
201
+
202
+
203
+
204
+ Auth::routes();
205
+
206
+ Route::get('/home', 'HomeController@index')->name('home');
207
+
208
+ ```
149
209
  ![データベース](35d8d2a7480ed8621b477c47bafd0343.png)

2

画像をコードに

2022/01/12 05:17

投稿

kazukikanomata
kazukikanomata

スコア10

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  →これができればいいと思うのですが、コントローラの書き方に原因があるのでしょうか?
10
10
  お答えいただければ幸いです。
11
- ```laravel Postcontroller.php
11
+ ```Postcontroller.php
12
12
  <?php
13
13
 
14
14
  namespace App\Http\Controllers;
@@ -60,8 +60,89 @@
60
60
  }
61
61
  ?>
62
62
  ```
63
+ ```index.blade.php
64
+ @extends('layouts.app')                  
65
+
66
+ @section('content')
67
+ <!DOCTYPE html>
68
+ <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
69
+ <head>
70
+ <meta charset="utf-8">
71
+ <title>テーブル一覧</title>
72
+ <!-- Fonts -->
73
+ <link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
74
+ </head>
75
+ <body>
76
+ <main>
77
+ <div class="container">
78
+ <div class="row justify-center-center">
79
+ <div class="col-md-4">
80
+ <div class="card">
81
+ <div class="card-header">タスク追加・詳細</div>
82
+ <div class="card-body">
83
+ <a href="posts/create">タスク追加</a><br>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ <div class="col-md-8">
88
+ <div class="card">
89
+ <div class="card-header">タスク</div>
90
+ <div class="card-body">
91
+ <div class="tasks">
92
+ <div class="task">
93
+ <table class="table">
94
+ <thead>
95
+ <tr>
96
+ <th class="id"></th>
97
+ <th class="content">タスクの内容</th>
98
+ <th class="due_time">期限</th>
99
+ <th class="status">状態</th>
100
+ <th class="time">かかる時間</th>
101
+ <th class="icon"></th>
102
+ <th class="icon"></th>
103
+ </tr>
104
+ </thead>
105
+ <tbody>
106
+ @foreach ($tasks as $task)
107
+ <tr>
108
+ <td>{{$task->id}}</td>
109
+ <td><a href="/posts/{{$task->id}}">{{$task->content}}</a></td>
63
- ![コントローラ](95999f09d10a1a413ab3a33642446ecc.png)
110
+ <td>{{$task->due_time}}</td>
111
+ <td>{{$task->status}}</td>
112
+ <td>{{$task->time}}時間</td>
113
+ <td><a href="posts/{{ $task->id }}/edit">編集️</a></td>
114
+ <form method="post" action="{{ action('PostController@destory' , $task->id) }}" id="delete_{{ $task->id}}" >
115
+ {{ @method_field('delete') }}
116
+ @csrf
117
+ <td><button data-id="{{ $task->id }}" class="btn btn-danger btn-sm" onclick="deletePost(this);" >削除️<button></td>
118
+ </form>
119
+ </tr>
120
+ </tbody>
121
+ @endforeach
122
+ </table>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </main>
131
+ </body>
132
+ </html>
133
+ <script>
134
+ function deletePost(e) {
135
+ 'use strict';
136
+ if (confirm('本当に削除しますか?')){
64
- ![index.blade.php](9e4471dc45b7b7b38840c4fd64a5428e.png)
137
+ document.getElementById('delete_'+ e.dataset.id).submit();
138
+ }
139
+ }
140
+ </script>
141
+
142
+
143
+
144
+ @endsection
145
+ ```
65
146
  ![Taskモデル](c3278d4ccbf8ff0df88cc5e15e518a4e.png)
66
147
  ![削除選択時の画面](a03472704fe8e224582dbad3f51d52e9.png)
67
148
  ![削除する→はいを選択した画面](88da63fab77993df2028051993a675f7.png)

1

2022/01/12 05:15

投稿

kazukikanomata
kazukikanomata

スコア10

test CHANGED
File without changes
test CHANGED
@@ -1,31 +1,68 @@
1
1
  ### 現在、laravel6.2で就活に向けてTodoアプリを制作しているものです。
2
2
 
3
-
4
-
5
3
  メインページで削除ボタンを押したら、その選択したタスクが消えるようにしたいのですが、ボタンを押しても削除できなくなっています。
6
-
7
4
  色々試してはみたのですが、上手くできなくて、
8
5
 
9
-
10
-
11
6
  選択したidとタスクが一致していれば選んだものが消える
12
-
13
7
  そのために、選択したidを取得して、ボタンを押したときに選択したidと等しいものが消える
14
8
 
9
+ →これができればいいと思うのですが、コントローラの書き方に原因があるのでしょうか?
10
+ お答えいただければ幸いです。
11
+ ```laravel Postcontroller.php
12
+ <?php
15
13
 
14
+ namespace App\Http\Controllers;
15
+ use App\Task;
16
+ use App\Category;
16
17
 
17
- →これができればいいと思うのですが、コントローラの書き方に原因があるのでしょうか?
18
+ use Illuminate\Http\Request;
18
19
 
20
+ class PostController extends Controller
21
+ {
22
+ public function index(Task $task)
23
+ {
24
+ //tasksという変数名でtaskテーブルの全データを渡す
25
+ return view('posts/index')->with(['tasks' => $task->get()]);
26
+ }
27
+ public function show(Task $task)
28
+ {
29
+ return view('posts/show')->with(['task' => $task]);
30
+ }
31
+
32
+ public function create(Category $category)
33
+ {
34
+ return view('posts/create')->with(['categories' => $category->get()]);
35
+ }
19
- お答えいただければ幸いです。
36
+ //保存
20
-
37
+ public function store(Request $request, Task $task)
38
+ {
39
+ $input = $request['task'];
40
+ $input += ['user_id' => $request->user()->id];
41
+ $task->fill($input)->save();
42
+ return redirect('/posts/' . $task->id);
43
+ }
44
+ public function edit(Task $task)
45
+ {
46
+ return view('posts/edit')->with(['task' => $task]);
47
+ }
48
+ public function update(Request $request, Task $task)
49
+ {
50
+ $input_task = $request['task'];
51
+ $task->fill($input_task)->save();
52
+ return redirect('/posts/' . $task->id);
53
+ }
54
+ public function destory(Task $task)
55
+ {
56
+ $task->delete();
57
+ $task->save();
58
+ return redirect();
59
+ }
60
+ }
61
+ ?>
62
+ ```
21
63
  ![コントローラ](95999f09d10a1a413ab3a33642446ecc.png)
22
-
23
64
  ![index.blade.php](9e4471dc45b7b7b38840c4fd64a5428e.png)
24
-
25
65
  ![Taskモデル](c3278d4ccbf8ff0df88cc5e15e518a4e.png)
26
-
27
66
  ![削除選択時の画面](a03472704fe8e224582dbad3f51d52e9.png)
28
-
29
67
  ![削除する→はいを選択した画面](88da63fab77993df2028051993a675f7.png)
30
-
31
68
  ![データベース](35d8d2a7480ed8621b477c47bafd0343.png)