Когда я нажимаю кнопку отправки в моей форме, она просто перезагружает страницу с теми же данными в окне исповеди. Данные формы не обрабатываются. Когда пользователь публикует признание, он должен получить доступ к методу store моего контроллера posts. Затем я хочу увидеть признание в профиле пользователя.
Что-то не так с моей формой?
это моя таблица базы данных:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id');
$table->text('confession');
$table->timestamps();
$table->index('user_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
Модель моего поста:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $gaurded = [];
//protected $gaurded = [];
public function user()
{
return $this->belongsTo(User::class);
}
}
Мои сообщенияКонтроллер:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\post;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* 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)
{
//validation of data
$this->validate($request, array(
'confession' => 'required',
));
//store the data
$post = new Post;
$post->confession = $request->confession;
$post->save();
//Redirecting to the page
return redirect()->route('posts.show', $post->id);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
Это мой взгляд :
@extends('layouts.app')
@section('content')
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2> Your Confession</h2>
{!! Form::open(['route' => 'posts.store']) !!}
{{Form::label('confession', 'confession')}}
{{Form::textarea('comfession', null, array('class' => 'form-control'))}}
{{Form::submit('Say It', array('class' => 'btn btn-success btn-lg btn-block'))}}
{!! Form::close() !!}
</div>
</div>
@endsection