4,我提交了一份表格,我想验证其字段,发生了什么,当我提交表格时,这就是它的内容
(1/1) FatalErrorException
Call to a member function all() on null
这是我的代码
$validator = app('validator')->make($this->request->all(),[
'postTitle' => 'required',
'postContent' =>'required']);
在laravel 5.2中,此验证器运行良好,但在laravel 5.4中它返回null
有人可以帮我解决这个问题吗?
任何帮助都非常感谢。 TIA
这是我的完整代码
<?php
namespace App\Repositories;
use App\Repositories\Contracts\addPostRepositoryInterface;
use Validator;
use Illuminate\Http\Request;
use DB;
use Session;
use Hash;
class addPostRepository implements addPostRepositoryInterface{
protected $request;
// Intialize request instance
public function __contruct(Request $request){
$this->request = $request;
}
public function addPosts(Request $request){
//validate posts
echo "test";
$validator = Validator::make($request->all(), [
'postTitle' => 'required',
'postContent' =>'required',
]);
//if validation fails return error response
if($validator->fails())
return redirect()->route('get.addPost')->withErrors($validator)->withInput();
try{
}catch(\Exception $e){
return redirect()->route('get.addPost')->withErrors(["error"=>"Could not add details! Please try again."])->withInput();
}
}
public function postCreate($screen){
switch($screen){
case 'add':
return $this->addPosts($screen);
break;
}
}
//getAddPost View
public function getAddPost(){
return view('addPost');
}
}
答案 0 :(得分:2)
似乎是方法注入(在构造函数中)或其他问题。
您可以尝试在本地(addPosts())函数上创建请求对象。 请尝试以下替代解决方案。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/adapter_expandable_listview_header_textview"
android:layout_width="match_parent"
android:text="Header"
android:textStyle="bold"
android:textSize="14sp"
android:textColor="@color/textColorSecondary"
android:layout_height="wrap_content"
android:layout_margin="16dp" />
</LinearLayout>
答案 1 :(得分:0)
根据您提供的信息,我将向您演示如何在Laravel 5.4中正确验证请求
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'postTitle' => 'required',
'postContent' =>'required',
]);
if ($validator->fails()) {
return redirect('your.view')
->withErrors($validator)
->withInput();
}
// Store the blog post...
}
这将在任何需要的地方成功验证您的请求。如果验证失败,您将转发到您的视图,并显示相应的错误。
确保use Validator;
位于文件顶部。
有关详细信息,请阅读https://laravel.com/docs/5.4/validation