現在Laravel5.4でグルメサイトの作成をしています。
formでレストラン名や住所などと一緒に、画像を登録した際に、画像がpublic/imagesフォルダに保存されるように実装したいのですが、できません。
いかに、create.blade.php, form.blade.php, ShopsController.phpのコードを掲載しております。どこが間違っているのかわかる方がおりましたら教えていただきたいですm(_ _)m
また根本的にLaravel5.4での画像アップロードの手法と間違っている場合は、その点も指摘していただけましたら幸いです。
create.blade.php
php
1@extends('layout') 2 3@section('content') 4 5<div class="page-size center-block"> 6 <h3>レストラン新規登録</h3> 7 <hr/> 8 @include('errors.form_errors') 9 10 {{Form::open(array('url' => 'shops', 'files' => true))}} 11 @include('shops.form') 12 {{Form::close()}} 13</div> 14@stop
form.blade.php
php
1 <div class="form-group"> 2 {{Form::label('fname', 'レストランの写真')}} 3 {{ Form::file('fname') }} 4 </div> 5 <div class="form-group"> 6 {{Form::label('name', '店名')}} 7 {{Form::text('name', null, ['class' => 'form-control'])}} 8 </div> 9 <div class="form-group"> 10 {{Form::label('category', 'カテゴリー')}}<br> 11 {{Form::select('category', [ 12 'フィリピン料理' => 'フィリピン料理', 13 '和食' => '和食', 14 '魚介・海鮮料理' => '魚介・海鮮料理', 15 'そば・うどん' => 'そば・うどん', 16 '焼き鳥' => '焼き鳥', 17 'お好み焼き' => 'お好み焼き', 18 'しゃぶしゃぶ' => 'しゃぶしゃぶ', 19 '洋食' => '洋食', 20 'フレンチ' => 'フレンチ', 21 'イタリアン' => 'イタリアン', 22 'スペイン料理' => 'スペイン料理', 23 'ステーキ' => 'ステーキ', 24 'ハンバーガー' => 'ハンバーガー', 25 '中華料理' => '中華料理', 26 '餃子' => '餃子', 27 '韓国料理' => '韓国料理', 28 'タイ料理' => 'タイ料理', 29 'ラーメン' => 'ラーメン', 30 'カレー' => 'カレー', 31 '焼肉' => '焼肉', 32 '鍋' => '鍋', 33 '居酒屋' => '居酒屋', 34 'バイキング' => 'バイキング', 35 'カフェ' => 'カフェ', 36 'パン' => 'パン', 37 'スイーツ' => 'スイーツ', 38 'バー・お酒' => 'バー・お酒'] 39 )}} 40 </div> 41 <div class="form-group"> 42 {{Form::label('description', 'レストランの紹介')}} 43 {{Form::textarea('description', null, ['class' => 'form-control'])}} 44 </div> 45 <div class="form-group"> 46 {{Form::label('address', '住所')}} 47 {{Form::text('address', null, ['class' => 'form-control'])}} 48 </div> 49 <div class="form-group"> 50 {{Form::label('runningtime', '営業時間')}} 51 {{Form::text('runningtime', null, ['class' => 'form-control'])}} 52 </div> 53 <div class="form-group"> 54 <!-- {{Form::label('published_at', 'Publish On:')}} --> 55 {{Form::hidden('published_at', date('Y-m-d'))}} 56 </div> 57 <div class="form-group form-button center-block"> 58 {{Form::submit('登録', ['class' => 'btn btn-success form-control'])}} 59 </div>
ShopsController.php
php
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Shop; 6use Illuminate\Http\Request; 7 8class ShopsController extends Controller { 9 10 public function index() { 11 $shops = Shop::latest('published_at')->get(); 12 return view('shops.index', compact('shops')); 13 } 14 15 public function show($id) { 16 $shop = Shop::findOrFail($id); 17 return view('shops.show', compact('shop')); 18 } 19 20 public function create() { 21 return view('shops.create'); 22 } 23 24 public function store(Request $request) { 25 $path = $request->file('fname')->store('images'); 26 27 // ①フォームの入力値を取得 28 $inputs = \Request::all(); 29 30 // ②マスアサインメントを使って、記事をDBに作成 31 Shop::create($inputs); 32 33 // ③レストラン一覧へリダイレクト 34 return redirect('shops'); 35 } 36}
回答2件
あなたの回答
tips
プレビュー