hiddenはinput type=”hidden”で普通に書く
/resources/views/comments/index.blade.php
/resources/views/comments/replies/index.blade.php
Route
Route::group(['middleware'=>'admin'], function(){ ...// Route::resource('admin/comments', 'PostCommentsController'); Route::resource('admin/comments/replies', 'CommentRepliesController'); });
$ php artisan make:model Comment -m
$ php artisan make:model CommentReply -m
comment migration file
Schema::create('comments', function (Blueprint $table) { $table->increments('id'); $table->integer('post_id')->unsigned()->index();; $table->integer('is_active')->default(0); $table->string('author'); $table->string('email'); $table->text('body'); $table->timestamps(); $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade'); });
comment replies migration file
Schema::create('comment_replies', function (Blueprint $table) { $table->increments('id'); $table->integer('comment_id')->unsigned()->index(); $table->integer('is_active')->default(0); $table->string('author'); $table->string('email'); $table->text('body'); $table->timestamps(); $table->foreign('comment_id')->references('id')->on('comments')->onDelete('cascade'); });
Model: Post.php
public function comments(){ return $this->hasMany('App\Post'); }
Comment.php
protected $fillable = [ 'post_id', 'author', 'email', 'body', 'is_active' ]; public function replies(){ return $this->hasMany('App\CommentReply'); }
CommentReply.php
protected $fillable = [ 'comment_id', 'author', 'email', 'body', 'is_active' ]; public function comment(){ return $this->belongsTo('App\Comment'); }
$ php artisan make:controller –resource PostCommentController
$ php artisan make:controller –resource CommentRepliesController
admin.blade.php
<li> <a href="#"><i class="fa fa-wrench fa-fw"></i> Posts<span class="fa arrow"></span></a> <ul class="nav nav-second-level"> <li> <a href="{{route('admin.posts.index')}}">All Posts</a> </li> <li> <a href="{{route('admin.posts.create')}}">Create Post</a> </li> <li> <a href="{{route('admin.comments')}}">All Comments</a> </li> </ul> <!-- /.nav-second-level --> </li>
PostCommentsController.php
public function index(){ return view('admin.comments.index'); }
route
Route::get('/post/{id}', ['as'=>'home.post','uses'=>'AdminPostsController@post']);
post.blade.php
<h1>{{$post->title}}</h1> <!-- Author --> <p class="lead"> by <a href="#">{{$post->user->name}}</a> </p> <hr> <!-- Date/Time --> <p><span class="glyphicon glyphicon-time"></span> Posted {{$post->created_at->diffForhumans()}}</p> <hr> <!-- Preview Image --> <img class="img-responsive" src="{{$post->photo ? '/' . $post->photo->file : ''}}" alt=""> <hr> <!-- Post Content --> <p>{{$post->body}}</p> <hr> <h4>Leave a Comment:</h4> {!! Form::open(['method'=>'POST', 'action'=>'PostCommentsController@store']) !!} {{ csrf_field()}} <div class="form-group"> {!! Form::label('body', 'Body') !!} {!! Form::textarea('body', null, ['class'=>'form-control', 'rows'=>3]) !!} </div> <div class="form-group"> {!! Form::submit('Submit Comment', ['class'=>'btn btn-primary']) !!} </div> {!! Form::close() !!} </div>
post.blade.php
{!! Form::open(['method'=>'POST', 'action'=>'PostCommentsController@store']) !!} {{ csrf_field()}} <input type="hidden" name="post_id" value="{{$post->id}}"> <div class="form-group"> {!! Form::label('body', 'Body') !!} {!! Form::textarea('body', null, ['class'=>'form-control', 'rows'=>3]) !!} </div> <div class="form-group"> {!! Form::submit('Submit Comment', ['class'=>'btn btn-primary']) !!} </div> {!! Form::close() !!} @if(Sessin::has('comment_message')) {{session('comment_message')}} @endif
PostCommentsController.php
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Auth; use App\User; use App\Photo; use App\Comment; public function store(Request $request){ $user = Auth::user(); $data = [ 'post_id' => $request->post_id, 'author' => $user->name, 'email' => $user->email, 'body' => $request->body ]; Comment::create($data); $request->session()->flash('comment_message','Your message has been submitted and is waiting moderation' ); return redirect()->back(); }
hiddenはinput type=”hidden”で書くという事は、フォームの確認ページがある場合、そこは全てcollectiveは使わずに書く、ということになりますね。