Laravelで投稿の画像を表示したい
解決したいこと
ララベルでファイルを取得して、ビューに表示したい
例)
ララベルでツイッターアプリのようなものを作っています。
ビューでファイルを取得して、表示したいです。
ファイルを保存
/storage/app/public/
には保存できていて、リンクも済んでいます
ですがビューに表示できないです、
コントローラーのどこかが間違いっているのでしょうが、
全くわからないです
git@github.com:kazuya0412ka/laravellesson2.git
<?php
namespace App\Http\Controllers;
use App\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$posts = Post::all();
return view("posts.index",compact('posts'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view ("posts.create");
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'content' => 'required',
]);
$post = new Post();
$post->title = $request->input("title");
$post->content = $request->input("content");
// $post->image = $request->input("image");
$post->time = date("Y-m-d H:i:s");
$image =$request->file("image");
if($request->hasfile("image")){
$path = \Storage::put('/public',$image);
$path = explode('/',$path);
}else{
$path = null;
}
$post->image = $path[1];
$post->save();
return redirect()->route("posts.show",[$post->id]);
}
/**
* Display the specified resource.
*
* @param \App\Post $post
* @return \Illuminate\Http\Response
*/
public function show(Post $post)
{
return view ("posts.show",compact("post"));
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Post $post
* @return \Illuminate\Http\Response
*/
public function edit(Post $post)
{
return view ("posts.edit",compact("post"));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Post $post
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Post $post)
{
$request->validate([
'title' => 'required',
'content' => 'required',
]);
$post->title = $request->input("title");
$post->content = $request->input("content");
$post->time = date("Y-m-d H:i:s");
$post->save();
return redirect()->route("posts.show",[$post->id]);
}
/**
* Remove the specified resource from storage.
*
* @param \App\Post $post
* @return \Illuminate\Http\Response
*/
public function destroy(Post $post)
{
$post->delete();
return redirect()->route("posts.index");
}
}
汚いソースコードで申し訳ありませんが、とにかくビューに写真を投稿できるようにしたいです。
どうすればいいのかと、なぜそうなのかご教授願います。