When i submit the form is nothing happens.
here is my step.
php artisan make:request PostRequest
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PostRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title'=>['required','max:255'],
'article'=>['required'],
'image'=>['image']
];
}
public function messages()
{
return [
'title.required'=>['need title'],
'article.required'=>['need article'],
];
}
}
?>
App/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use App\Post;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests\PostRequest;
use Illuminate\Support\Facades\Auth;
class PostController extends Controller
{
public function store(PostRequest $request)
{
Post::create($request->all());
return redirect()->route('post.index');
}
}
?>
If i don't use PostRequest it work perfectly,like this.
app/Http/Controllers/PostController.php
public function store(Request $request)
{
$post=new Post;
$post->user_id=Auth::user()->id;
$post->title=$request->title;
$post->article=$request->article;
$post->image=$request->image;
$post->save();
return redirect()->route('post.index');
}
And i missing something step? Thanks everyone.
Your rules()
function has a return array.
public function rules()
{
return [
'title'=>['required','max:255'],
'article'=>['required'],
'image'=>['image']
];
}
Change it to
public function rules()
{
return [
'title'=>'required|max:255',
'article'=>'required',
'image'=>'image'
];
}