![](/img/trans.png)
[英]Laravel 7 adminLTE Argument 1 passed::__construct() must be of the type array, null given
[英]error must be of type array, null given in laravel
我嘗試使用驗證器通過 laravel 驗證數據,並將其插入到名為 offer 的表中,我確信這是真的,我也用它來驗證,這是我的代碼web.ZE1BFD762321E409CEE4AC0B6E48
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Front\UserController;
use App\Http\Controllers\CrudController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::namespace('Front')->group(function(){
Route::get('users',[UserController::class,'showAdminName']);
});
Auth::routes(['verify' =>true]);
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home')->middleware('verified');
Route::get('fillable',[\App\Http\Controllers\CrudController::class,'getOffers']);
Route::group(['prefix'=>'offers'],function(){
// Route::get('store',[CrudController::class,'store']);
Route::get('create',[CrudController::class,'createview']);
Route::post('store',[CrudController::class,'store']);
});
CrudController.php
<?php
namespace App\Http\Controllers;
use App\Models\Offer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class CrudController extends Controller
{
public function getOffers(){
return Offer::select('id','name')->get();
}
public function createview(){
return view('offers.create');
}
public function store(Request $request){
// validate data
$validate = Validator::make($request->all,[
'name' => 'required|min:5|max:10|unique:offers,name',
'price' => 'required|numeric',
'details' => 'required'
]);
// insert
Offer::create([
'name' => $request->name,
'price' => $request->price,
'details' => $request->details,
]);
return back()->with('offer_created','Saved succesfully');
}
}
create.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-wEmeIV1mKuiNpC+IOBjI7aAzPcEZeedi5yW5f2yOq55WWLwNGmvvx4Um1vskeMj0" crossorigin="anonymous">
<title>Try laravel</title>
</head>
<body style="background-image: url(https://images.pexels.com/photos/338515/pexels-photo-338515.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260); background-size: cover; ">
<div class="container" style="padding: 50px;">
<div class="col-md-6 offset-md-3">
<div class="card">
<div class="card-header">
ADD OFFER
</div>
<div class="card-body">
@if(Session::has('offer_created'))
<div class="alert alert-success">
{{ Session::get('offer_created') }}
</div>
@endif
<form method="POST" action="{{ url('offers\store') }}">
@csrf
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Offer Name</label>
<input type="text" class="form-control" id="exampleInputEmail1" name="name" aria-describedby="emailHelp">
</div>
@error('name')
<div class="text-danger">
{{ $message }}
</div>
@enderror
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Offer Price</label>
<input type="text" class="form-control" id="exampleInputPassword1" name="price">
</div>
@error('price')
<div class="text-danger">
{{ $message }}
</div>
@enderror
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Offer details</label>
<input type="text" class="form-control" id="exampleInputPassword1" name="details">
</div>
@error('details')
<div class="text-danger">
{{ $message }}
</div>
@enderror
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
<!-- Scripts -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-p34f1UUtsS3wqzfto5wAAmdvj+osOnFyQFpp4Ua3gs/ZVWx6oOypYoCJhGGScy+8" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.min.js" integrity="sha384-lpyLfhYuitXl2zRZ5Bn2fqnhNAKOAaM/0Kr9laMspuaMiZfGmfwRNFh8HlMy49eQ" crossorigin="anonymous"></script>
</body>
</html>
它給了我這個錯誤
Illuminate\Validation\Factory::make(): 參數 #1 ($data) 必須是數組類型,null 給定,在 C:\xampp\htdocs\starter\vendor\laravel\framework\src\Illuminate\Support\ 中調用Facades\Facade.php 在線 261
正如另一個答案指出的那樣,技術解決方案是調用$request->all()
而不是引用$request->all
。
但是,我想解釋一下錯誤消息,因為這是您需要了解的內容,以便將來能夠解決類似問題。 錯誤消息告訴您,有一個 function 的第一個參數需要傳遞一個數組,但是,而不是傳遞了null
。 您可以考慮以下選項:
嘗試使它 $request->all (to $request->all()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.