【问题标题】:Unable to pass values to database using laravel无法使用 laravel 将值传递到数据库
【发布时间】:2021-05-01 23:16:03
【问题描述】:

我对 laravel 有点陌生,非常感谢一些帮助。我正在尝试制作注册表以将用户信息从网站传递到 mysql 数据库。

这是我使用的表格。

<form action="{{ route('register') }}" method="post">
                @csrf
                <div class="mb-4">
                    <label class="text-sm font-medium text-gray-500">LCard Number:</label>
                    <input type="number" name="cardno" id="cardno" placeholder="LCard Number" class="bg-gray-100 border-2 w-full p-4 rounded-lg" value="{{ old('cardno') }}">

                    @error('cardno')
                        <div class="text-red-500 mt-2 text-sm">
                            {{ $message }}
                        </div>
                    @enderror
                </div>

                <div class="mb-4">
                    <label class="text-sm font-medium text-gray-500">Amount Spend:</label>
                    <input type="number" name="amount" id="amount" oninput="showInput();" placeholder="Enter Amount" class="bg-gray-100 border-2 w-full p-4 rounded-lg" value="{{ old('amount') }}">

                    @error('amount')
                        <div class="text-red-500 mt-2 text-sm">
                            {{ $message }}
                        </div>
                    @enderror
                </div>

                <div class="mb-4">
                    <label class="text-sm font-medium text-gray-500">Points Earned:</label>
                    <input name="points" id="display" disabled=yes class="bg-gray-100 border-2 w-full p-4 rounded-lg showInput">
                </div>

                <div class="mb-4">
                    <label class="text-sm font-medium text-gray-500">Transaction Date:</label>
                    <input type="date" name="date" id="date" placeholder="Date of Transaction" class="bg-gray-100 border-2 w-full p-4 rounded-lg" value="">

                    @error('date')
                        <div class="text-red-500 mt-2 text-sm">
                            {{ $message }}
                        </div>
                    @enderror
                </div>

                <div>
                    <button type="submit" class="bg-blue-500 text-white px-4 py-3 rounded font-medium w-full">Save</button>
                </div>
            </form>

这是我的控制器类。

class RegisterController extends Controller
{   
    public function index()
    {
        return view('auth.register');
    }

    public function store(Request $request)
    {
        $this->validate($request, [
        'cardno' => 'required|max:10',
        'amount' => 'required|max:8',
        'points' => 'required',
        'date' => 'required',
    ]);

    User::create([
        'cardno'=>$request->cardno,
        'amount'=>$request->amount,
        'points'=>$request->points,
        'date'=>$request->date,
    ]);
}
}

这是我在web.php中放的路由

Route::get('/register', [RegisterController::class, 'index'])->name('register');
Route::post('/register', [RegisterController::class, 'store']);

在我在表单中输入值并按提交后,没有任何反应。非常感谢您的帮助,谢谢。

【问题讨论】:

  • 假设输入数据满足条件,调用create函数。请提供用户表的调试日志或模式(每列类型数据)
  • 我的第一个猜测是根据经验,如果您没有收到任何错误并且其他一切都很好,那么您没有在用户模型中将输入字段添加到 $fillable
  • 正如@Mr.Phantom 所建议的,您需要检查可填充性。之后我建议您尝试注释掉验证规则。

标签: php html mysql laravel


【解决方案1】:

会有验证错误

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

把它放在你形成之前

你也应该把return 语句放在控制器中

public function store(Request $request)
{
    $this->validate($request, [
    'cardno' => 'required|max:10',
    'amount' => 'required|max:8',
    'points' => 'required',
    'date' => 'required',
]);

User::create([
    'cardno'=>$request->cardno,
    'amount'=>$request->amount,
    'points'=>$request->points,
    'date'=>$request->date,
    ]);

    return redirect()->back()->with('success','Created.');
}

否则只会完成数据库插入操作,但用户不会得到任何输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 2021-02-25
    • 2012-08-03
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多