当前位置: 首页 > 知识库问答 >
问题:

Laravel - 方法 Illuminate\Http\Request::request 不存在

昌栋
2023-03-14

我已经创建了一个视图来创建新的课程' create.blade.php '。我试图将这些数据存储在数据库中,但是我得到了以下错误:

BadMethodCallException Method Illuminate\Http\Request::request 不存在。

我不确定是什么导致了这个错误,因为我已经在我的控制器中引用了请求名称空间。见下文;

CoursesController.php;

<?php

namespace App\Http\Controllers\Admin;

use Gate;
use App\User;
use App\Course;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;


class CoursesController extends Controller
{
    public function __construct()
    {
        //calling auth middleware to check whether user is logged in, if no logged in user they will be redirected to login page
        $this->middleware('auth');
    }

    public function index()
    {
        if(Gate::denies('manage_courses')){
            return redirect(route('home'));
        }

        $courses = Course::all();
        return view('admin.course.index')->with('course', $courses); //pass data down to view
    }

    public function create()
    {
        if(Gate::denies('create_courses')){
            return redirect(route('home'));
        }

        $courses = Course::all()->pluck('title');
        $instructors = User::all()->pluck('name', 'id'); //defining instructor variable 

        return view('admin.course.create', compact('instructors')); //passing instructor to view
    }

    public function store(Request $request)
    {
        $course = Course::create($request->all()); //request all the data fields to store in DB
        $course->courses()->sync($request->request('courses', [])); //

        if($course->save()){
            $request->session()->flash('success', 'The course ' . $course->title . ' has been created successfully.');
        }else{
            $request->session()->flash('error', 'There was an error creating the course');
        }

        return redirect()->route ('admin.courses.index');
    }

}

创建.blade.php

@extends('layouts.app')

@section('content')
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Create Course</div>
                <div class="card-body">

                        <form method="POST" action="{{ route('admin.courses.store') }}" enctype="multipart/form-data">
                            @csrf

                            <div class="form-group">
                                    <label class="required" for="name">Course Title</label>
                                    <input class="form-control {{ $errors->has('title') ? 'is-invalid' : '' }}" type="text" name="title" id="id" value="{{ old('title', '') }}" required>
                                    @if($errors->has('name'))
                                    <div class="invalid-feedback">
                                        {{ $errors->first('name') }}
                                    </div>
                                @endif
                            </div>

                            <div class="form-group">
                                    @if (Auth::user()->isAdmin())
                                            {!! Form::label('Instructor', 'Instructor', ['class' => 'control-label']) !!}
                                            {!! Form::select('Instructor[]', $instructors, Input::get('Instructor'), ['class' => 'form-control select2', 'multiple' => 'multiple']) !!} 
                                            @if($errors->has('Instructor'))
                                                    {{ $errors->first('Instructor') }}
                                                </p>
                                            @endif
                            </div>


                            <div class="form-group">
                            <button class="btn btn-danger" type="submit">
                                Save
                            </button>
                        </div>
                    </div>
                     @endif
                    </form>
                </div>
            </div>
            @endsection

我刚接触拉雅维利,所以我很感谢你的帮助。谢谢

共有2个答案

辛锦
2023-03-14

改变

$course->courses()->sync($request->input('courses', []));
端木震博
2023-03-14

错误消息

不存在::请求

表示尝试在 Illuminate\Http\Request 类上调用名为 request 的方法/函数,并且该函数不存在。

看起来您确实在尝试在这里使用请求()方法:

$course->courses()->sync($request->request('courses', []));

您很可能想要使用输入()方法,它会将数据发布为“课程”。

$course->courses()->sync($request->input('courses', []));

如 https://laravel.com/docs/master/requests#input-trimming-and-normalization 中所述

我希望这有帮助!

 类似资料:
  • 从5.5.28升级到laravel 5.6.21后,我遇到了以下错误: 方法Illumbite\Http\Request::setTrustedHeaderName不存在。 日志中的更多信息: 拉雷维尔。错误:方法Illumbite\Http\Request::setTrustedHeaderName不存在。{“exception”:“[对象](BadMethodCallException(代码:

  • 我在我的Laravel电子商务上设置了Voyager管理面板。当我尝试登录时,我看到一个错误: (1/1) BadMethodCallException方法Illuminate \ Http \ Request::validate不存在。 堆栈: 拉拉维尔 https://github.com/laravel/framework/blob/6.x/src/Illuminate/Foundation

  • http-request 是 Android 网络框架,在小型的项目上性能表现最好。 使用: The http-request library is available from Maven Central. <dependency>  <groupId>com.github.kevinsawicki</groupId>  <artifactId>http-request</artifactId>

  • 如何同时使用Http请求和Facades请求。 在我的自定义登录中,我使用了Laravel Throttle,以避免多次尝试登录。问题是当不使用Http请求时会显示错误 FatalThrowableError类型错误:传递给App\Http\Controllers\Controller::validate()的参数1必须是Illumbite\Http\Request的实例 如果使用Facades请

  • 我正在为我的Laravel应用程序进行Ajax登录。 我使用的是角度: 这个请求工作正常,我的问题是Laravel的响应总是重定向我,因为如果我没有发送JSON,它应该: 这就是Laravel框架代码。它不断重定向我回来,但我想触发条件

  • ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目,能够让简单的 API 完成非常复杂的功能,比如异步请求、队列请求、GZIP 压缩、缓存、断点续传、进度跟踪、上传文件、HTTP 认证。