私には非常に奇妙な問題があります。フォームを送信すると、サーバー側の検証でエラーがスローされます。
これが私のシンプルなコントローラーです:
namespace App\Http\Controllers;
use Newsletter;
use Illuminate\Http\Request;
class SubscriptionController extends Controller
{
public function subscribe(Request $request)
{
$request->validate([
'email' => 'required|email',
]);
}
}
フォームを送信すると、次のことがわかります。
BadMethodCallExceptionメソッドvalidateは存在しません。
次のように動作するはずです。
文書では:
$this->validate($request, [
'email' => 'required|email',
]);
この文字列-動作:)
これを試してください:
$validateFields = array('email' => 'required|email');
$this->validate($request, $validateFields);
または
$this->validate($request, [
'email' => 'required|email'
]);
5.4では使用できなくなりましたが、コントローラーでは使用可能です
試してください:
$this->validate($request, [
'email' => 'required|email',
]);
実際に適切なコントローラーを追加する場合、validateメソッドが既に含まれているはずです。以下のコントローラーを追加してみてください。
代わりに:use App\Http\Controllers\Controller;
$validator = \Validator::make($request->all(), [
'mobile_number' => 'required',]);
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
これがあなたのために働くことを願って..
Validatorサービスプロバイダーを使用できます。
namespace App\Http\Controllers;
use Newsletter;
use Illuminate\Http\Request;
use Validator;
class SubscriptionController extends Controller
{
public function subscribe(Request $request)
{
$request->validate($request->all(),[
'email' => 'required|email',
]);
}