読み込みが終了しない場合は、しばらく待つか、リロードを行なってください。
If loading does not finish, wait for a while or reload.
エンジニア向けの情報を発信するブログです。
どなたでも発信できます。
お好きに利用していただれば幸いです。

変更履歴
2021/09/12 validationのリダイレクト処理を編集しました。
Route::get('/article/list', 'ArticleController@list')->name('article.list');
//省略
public function list(Request $request)
{
$articles = Article::all();
return view(
'article.list',
[
'articles' => $articles
]
);
}
$articles = Article::all();
@extends('layouts.app')
@section('content')
@foreach ($articles as $article)
<div style="border-bottom: solid 1px gray;">
<div>
user: {{$article->user->name}}
</div>
<div>
title: {{$article->title}}
</div>
</div>
@endforeach
@endsection
//省略
<a href="{{route('article.new')}}">記事投稿</a>
<a href="{{route('article.list')}}">ブログ一覧</a>//<-追加
//省略


@extends('layouts.app')
@section('content')
@foreach ($articles as $article)
<div style="border-bottom: solid 1px gray;">
<div>
user: {{$article->user->name}}
</div>
<div>
title: <a href="{{route('article.show', ['id' => $article->id])}}">{{$article->title}}</a>//<-編集
</div>
</div>
@endforeach
@endsection


@extends('layouts.app')
@section('content')
@foreach ($articles as $article)
<div style="border-bottom: solid 1px gray;">
<div>
user: {{$article->user->name}}
</div>
<div>
title: <a href="{{route('article.show', ['id' => $article->id])}}">{{$article->title}}</a>
</div>
↓追加
@if (Auth::check() && Auth::user()->id === $article->user_id)
<a href="#">編集</a>
@endif
</div>
@endforeach
@endsection
Auth::check()
&&
Auth::user()->id
===
$article->user_id

Route::get('/article/edit/{id}', 'ArticleController@edit')->name('article.edit')->middleware('auth');
public function edit(Request $request)
{
$id = $request->route('id');
$article = Article::find($id);
if (!isset($article) || $article->user_id !== Auth::id()) {
abort(404);
}
$title = $article->title;
$content = $article->content;
$tags = $article->tags->pluck('name')->toArray();
return view(
'article.new',
[
'id' => $id,
'title' => $title,
'content' => $content,
'tag' => !empty($tags) ? implode(',', $tags) : null,
]
);
}
if (!isset($article) || $article->user_id !== Auth::id()) {
$title = $article->title;
$content = $article->content;
$tags = $article->tags->pluck('name')->toArray();
$tags = $article->tags->pluck('name')->toArray();
$article->tags
->pluck('name')
->toArray();
return view(
'article.new',
[
'id' => $id,
'title' => $title,
'content' => $content,
'tag' => !empty($tags) ? implode(',', $tags) : null,
]
);
'tag' => !empty($tags) ? implode(',', $tags) : null,
'article.new',
@extends('layouts.app')
@section('content')
<form action="{{route('article.create')}}" method="post">
@csrf
<input type="hidden" name="id" value="{{$id ?? null}}">//<-追加
<input name="title" type="text" value="{{old('title', $title ?? null)}}">//<-編集
<input type="text" name="tag" value="{{old('tag', $tag ?? null)}}">//<-編集
<textarea name="content" cols="30" rows="10">{{old('content', $content ?? null)}}</textarea>//<-編集
<input type="submit">
</form>
@endsection
<input type="hidden" name="id" value="{{$id ?? null}}">
{{old('title', $title ?? null)}}
$title ?? null
isset($title) ? $title : null
//省略
@if (Auth::check() && Auth::user()->id === $article->user_id)
<a href="{{route('article.edit', ['id' => $article->id])}}">編集</a>//<-編集
@endif
//省略

public function create(Request $request)
{
$validator = Validator::make($request->all(), [
'title' => [
'required',
'string',
'max:25',
],
'content' => [
'required',
'string',
'max:4000',
],
'tag' => [
'nullable',
'string',
],
]);
$validator->validate();
//↓ここから
$id = $request->get('id');
$article = Article::find($id);
if (isset($article) && $article->user_id !== Auth::user()->id) {
abort(404);
}
//↑ここまで追加
$title = $request->get('title');
$content = $request->get('content');
↓ここから
if (isset($article)) {
$article->title = $title;
$article->content = $content;
$article->save();
} else {
$user_id = Auth::id();//<-こっちに移動
$article = Article::create(
[
'title' => $title,
'content' => $content,
'user_id' => $user_id,
]
);
}
↑ここまで編集
$input_tag = $request->get('tag');
if (isset($input_tag)) {
$tag_ids = [];
$tags = explode(',', $input_tag);
foreach ($tags as $tag) {
$tag = Tag::updateOrCreate(
[
'name' => $tag,
]
);
$tag_ids[] = $tag->id;
}
$article->tags()->sync($tag_ids);
}
return redirect()->route('article.show', ['id' => $article->id]);
}
$id = $request->get('id');
$article = Article::find($id);
if (isset($article) && $article->user_id !== Auth::user()->id) {
abort(404);
}
if (isset($article)) {
$article->title = $title;
$article->content = $content;
$article->save();
} else {
$user_id = Auth::id();
$article = Article::create(
[
'title' => $title,
'content' => $content,
'user_id' => $user_id,
]
);
}
$article->title = $title; $article->content = $content;
$article->title
$article->title = $title;
$article->save();
$user_id = Auth::id();





public function delete(Request $request)
{
$id = $request->get('id');
$article = Article::find($id);
if (!isset($article) || $article->user_id !== Auth::id()) {
abort(404);
}
$article->delete();
$articles = Article::all();
return view(
'article.list',
[
'articles' => $articles,
]
);
}
$article->delete();
Route::post('/article/delete', 'ArticleController@delete')->name('article.delete')->middleware('auth');
//省略
@if (Auth::check() && Auth::user()->id === $article->user_id)
<a href="{{route('article.edit', ['id' => $article->id])}}">編集</a>
//↓ここから
<form action="{{route('article.delete')}}" method="post">
@csrf
<button type="submit" name="id" value="{{$article->id}}">
削除
</button>
</form>
//↑ここまで追加
@endif
//省略
