首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 7.x选择值未传入控制器

基础概念

Laravel 是一个基于 PHP 的全栈框架,用于构建现代 Web 应用程序。它提供了丰富的功能,包括路由、中间件、模板引擎、ORM(Eloquent)等。Laravel 7.x 是该框架的一个版本。

问题描述

在 Laravel 7.x 中,选择值未传入控制器通常是由于表单提交或路由参数传递的问题。

可能的原因

  1. 表单提交问题:表单元素没有正确设置 name 属性,或者表单提交方式不正确。
  2. 路由参数问题:路由定义中没有正确捕获参数,或者控制器方法中没有正确接收参数。
  3. 中间件问题:某些中间件可能会影响请求参数的传递。

解决方法

1. 表单提交问题

确保表单元素有正确的 name 属性,并且表单提交方式正确。

代码语言:txt
复制
<!-- 示例表单 -->
<form action="{{ route('submit_form') }}" method="POST">
    @csrf
    <select name="category">
        <option value="1">Category 1</option>
        <option value="2">Category 2</option>
    </select>
    <button type="submit">Submit</button>
</form>

2. 路由参数问题

确保路由定义中正确捕获参数,并在控制器方法中正确接收参数。

代码语言:txt
复制
// routes/web.php
Route::post('/submit_form', 'FormController@submitForm');

// app/Http/Controllers/FormController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FormController extends Controller
{
    public function submitForm(Request $request)
    {
        $category = $request->input('category');
        // 处理 $category
    }
}

3. 中间件问题

检查是否有中间件影响了请求参数的传递。可以在 app/Http/Middleware 目录下查看和调试中间件。

示例代码

以下是一个完整的示例,展示了如何在 Laravel 7.x 中正确传递和处理表单选择值。

代码语言:txt
复制
<!-- resources/views/form.blade.php -->
<form action="{{ route('submit_form') }}" method="POST">
    @csrf
    <select name="category">
        <option value="1">Category 1</option>
        <option value="2">Category 2</option>
    </select>
    <button type="submit">Submit</button>
</form>
代码语言:txt
复制
// routes/web.php
Route::post('/submit_form', 'FormController@submitForm')->name('submit_form');

// app/Http/Controllers/FormController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FormController extends Controller
{
    public function submitForm(Request $request)
    {
        $category = $request->input('category');
        // 处理 $category
        return redirect()->back()->with('success', 'Form submitted successfully!');
    }
}

参考链接

通过以上步骤,您应该能够解决 Laravel 7.x 中选择值未传入控制器的问题。如果问题仍然存在,请检查日志文件和调试信息,以获取更多线索。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel8的迁移压缩、任务批处理、速率限制优化 | 文末抽奖

组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...当在执行任何其他迁移的情况下,你迁移数据库时,Laravel 将会先执行 schema 文件中的 SQL,再执行不包含在 schema 中的剩余迁移。...RateLimiter::for('global', function (Request $request) { return Limit::perMinute(1000); }); 因为速率限制器的回调函数传入的是一个...Limit::none() : Limit::perMinute(100); }); 有时你可能希望根据一些特定的来进行速率限制。...将速率限制器的名称传入中间件来进行绑定: Route::middleware(['throttle:uploads'])->group(function () { Route::post('/audio

1.9K21
  • Laravel5 自定义路由中间件的使用步骤,太好用,珍藏了!

    前言 Laravel5中我们处理request请求,中间会有很多环节。本文所说的中间件,位于路由和控制器之间,起到过滤和筛选请求的作用。 ? 为什么不放到“表单验证”里呢?...因为有些请求,我们可能不太理会表单内容,或者想要在表单数据注入控制器方法之前,就进行拦截,那么,中间件无疑是一个好的选择。 创建中间件 下面示例,创建一个中间件,用于判断用户是否进行了“实名认证”。...如果验证过,则通过;验证,则返回提示信息。...phpnamespace App\Http\Middleware;use Closure;class CheckRealname{ /** * 处理传入的请求,假设用户授权登录...结语 好了,上面就是laravel自定义中间件的使用过程,相信大家可以很快掌握。 自定义的中间件可以为我们处理更为复杂的逻辑,也使控制器代码更为整洁,不会把所有逻辑都堆在控制器内,维护起来臃肿冗余。

    1.1K20

    通过 Request 对象实例获取用户请求数据

    注入请求对象 在 Laravel 中,访问用户输入数据最常用的方式,就是通过注入到控制器方法中的 Illuminate\Http\Request 对象实例,通过该实例,我们可以访问所有用户请求数据,不管是什么方式...('name'); 我们还可以为 input 方法传递第二个参数作为默认,如果请求字段为空的话,则使用该默认: $site = $request->input('site', 'Laravel学院...这个时候,我们需要显式地通过 获取路由参数值 除了 URL 查询字符串以及表单提交数据之外,你可能会忽视还有一种形式的输入参数,就是路由参数,我们一般显式将其作为控制器方法参数或者定义路由的匿名函数参数传入...作为定义路由的匿名函数参数之间已经见过很多了,这里我们来演示下作为控制器方法参数传入,以及如何通过 Request 对象实例获取。...首先改写 /form 路由定义如下: Route::post('form/{id}', 'RequestController@form'); 然后我们在对应控制器方法中传入这个路由参数(要放到 $request

    19.7K30

    Laravel学习笔记(三)——控制器,处理请求与返回响应

    Laravel中的控制器 作用 和一般的MVC框架中的Controller作用一样,在Laravel中,控制器的主要作用是接受路由转发的请求,从模型获取数据后,再将数据渲染到视图一并输出给用户。...控制器目录 第一章就有提到过,Laravel中所有控制器都在 app/Http/Controllers/ 目录下。 控制器生成方式 利用自带的artisan生成。(<-推荐) 新建空白文件。...PS:php命令请自行添加到全局变量;这条命令是在Laravel项目根目录下运行的。...路由转发请求到控制器 转发请求到控制器的路由规则 路由转发到控制器有两种写法,为了方便,我们经常选择第一种,而第二种也会在某些地方用到。(路由别名、路由群组等) <?...在路由中传入的参数,可以在控制器中简单的通过$来调用该参数。具体代码如下: web.php <?

    2K00

    路由使用进阶(二)

    由于路由参数({task})和方法参数(task)一样,并且我们约定了 task 类型为 \App\Models\Task,Laravel 就会判定这是一个路由模型绑定,每次访问这个路由时,应用会将传入参数值赋值给...2、兜底路由 在 Laravel 5.6 中,引入了兜底路由功能。...3、频率限制 在 Laravel 5.6 中,还引入了频率限制功能。...这样,我们就可以通过为不同的模型类设置不同的 rate_limit 属性来达到动态设置频率限制的效果了。...4、路由缓存 使用路由缓存之前,需要知晓路由缓存只能用于控制器路由,不能用于闭包路由,如果路由定义中包含闭包路由将无法进行路由缓存,只有将所有路由定义转化为控制器路由或资源路由后才能执行路由缓存命令:

    8.5K40

    php之laravel项目中使用腾讯云短信

    应用添加成功后会有应用的 SDK AppID 以及 App Key 注意:可以添加多个应用,每一个应用都对应各自的SDK AppID 以及 App Key 如何申请签名: 添加完应用后,进入到应用中,选择...如何申请模板: 签名添加成功后,选择 短信正文->创建正文模板。.../app/Libs/qcloudsms_php-master/src/SmsSenderUtil.php', 表明该类库引入成功,然后就可以在控制器里直接用了 目前短信相关的数据库表有5张: sms_app...IDsms_template_idInt(11) 模板IDcontentstext 短信内容send_timeInt(11) 发送时间originInt(11) 短信来源stateInt(11) 状态:0验证...sms_send_idInt(11) 短信发送详情记录IDverfiy_codeVarchar(8) 验证码sms_typeInt(11) 短信类型:0表示验证类型的stateInt(11) 验证状态:0验证

    3.6K00

    Laravel 参数验证的疑与惑

    验证器怎么创建的,谁创建的 Laravel 文档调用验证器,除了通过控制器,还有就是通过Facades的方式创建验证器对象。...1 通过extend方法扩展 //这是一个简单的参数比较的验证规则,Laravel5.8中提供,Laravel5.5中提供 //验证规则如下: 'max_num'=>'gte:min', Validator...扩展函数返回布尔,返回true则表示验证通过,返回false表示验证失败。...如果想要通过自定义验证规则类实现上面两个字段大小比较的验证规则,则需要自定义验证类,修改validateUsingCustomRule方法,将当期验证器传入到自定义验证规则实例对象中去。...如果需要实现,则需要使用自定义验证器,将验证器传入到验证规则中去。 Laravel本身提供了ClosureValidationRule的验证规则用于处理回调函数验证规则。

    3.4K00

    3分钟短文|Laravel命令行调用控制器方法,你会几个?

    今天要说的就是在laravel中,能不能在命令行中调用控制器的方法, 怎么去实现? 学习时间 为了快速测试控制器方法可不可行,我们有时候会想,能不能像这样在命令行直接访问某个控制器路由的方法。...于是我们想,既然laravel提供了artisan的命令行调用,何不先做一个命令,然后在命令内使用程序方法 调用控制器呢。说来就动手开写。 首先创建一个命令类。...首先定义命令格式和传入的参数。...call {uri}'; 然后是用法的描述: protected $description = 'php artsian route:call /route'; 要访问uri地址,我们肯定要构造一个请求体,传入对应的参数...,这样控制器方法才能正确地接收。

    1.8K10

    Laravel 路由使用入门

    对于稍微复杂一些的业务逻辑,我们可以将其拆分到控制器方法中实现,然后在定义路由的时候使用控制器+方法名来取代闭包函数: Route::get('/', 'WelcomeController@index'...); 这段代码的含义是将针对 / 路由的 GET 请求传递给 App\Http\Controllers\WelcomeController 控制器的 index 方法进行处理。...标识符即可,同时你还可以为可选参数指定默认: Route::get('user/{id?}', function ($id = 1) { return "用户ID: " ....$id; }); 这样,如果不传递任何参数访问 http://blog.test/user,则会使用默认 1 作为用户 ID。...$id; })->name('user.profile'); 前端视图模板中可以通过辅助函数 route 并传入路由名称(如果有路由参数,则以数组方式作为第二个参数传入)来引用该路由: <a href

    2.6K50

    laravel5.1框架基础之路由详解

    分享给大家供大家参考,具体如下: 我在学习Laravel5.1,虽然刚刚开始,认识很浅,但还是需要做做归纳,清晰认识 建议大家到laravel学院学习laravel 1、路由(app/routes.php...) 在routes.php中进行路由设置,; 作为访问的统一入口,是控制器的统一调度; 没有配置路由,就没有正确地访问路径; 路由需要自己规定一定的规则,方便自己查看、使用、理解; 2、路由基本类型及使用示例...,function($name = 'name'){ return $name; // 返回name显示,如果没设置就取默认 }); 即设置了默认,路由中加了 ?...输入参数则使用默认 正则参数 正则可以更灵活些,匹配更多需求。 Route::get('/blog/{id?}'...| 简单地告诉laravel,当特定地址被请求的时候,访问对应的控制器,使地址得到响应。

    1.3K30

    竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。

    2020年9月8号,Laravel发布了8.0版本。Laravel计划于2022年1月25日发布9.0版本。...组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...Laravel Jetstream Laravel Jetstream 是为 Laravel 设计的精美的应用程序脚手架。...Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。...例如,你的 User 模型 有个 suspended 属性,现在你想修改它的一个默认的属性,你可以使用基类工厂类的 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型的 PHP 方法。

    2.5K60

    Laravel框架自定义验证过程实例分析

    本文实例讲述了Laravel框架自定义验证过程。...该表单的提交路由你也一样要设置好: Route::post('login','AnyControllerName@AnyFunctionName'); 其实由于这里已经由我们可控了,即,我们可以手动确定表单提交到哪个控制器以及对应该控制器下的方法...laravel保存$password的方式是使用PHP的函数password_hash,该函数能计算传入的哈希,而且该函数需要第二个参数,指定哈希处理的方式,Laravel中该参数名为PASSWORD_BCRYPT...,Laravel会将密码经过该函数处理后再保存。...假设你的密码为123456,那么你保存在数据库中的就是 password_hash('123456','PASSWORD_BCRYPT') Auth::attempt()会将你提交过来的,做password_hash

    4.8K20

    Laravel 7 正式发布,一起来看看有哪些重要更新吧

    Laravel 7 版本于 2020 年 3 月 3 日正式发布,本次版本更新包含了很多新特性: 轻量级用户认证解决方案 —— Laravel Airlock 路由匹配速度底层优化 自定义 Eloquent...Laravel Airlock Laravel Airlock 为 SPA(单页面应用)、移动应用以及基于 Token 的简单 API 系统提供了轻量级的用户认证解决方案。...实现 CastsAttributes 接口的类必须定义 get 和 set 方法,get 方法负责将获取自数据库的原生转换为一个转化类型,而 set 方法是 get 方法的逆操作,负责将转化类型转换为可存储到数据库的原生...更多特性 以上只是 Laravel 7 众多新特性中的一小部分,你可以通过官方文档的版本更新以及升级指南查看完整的新特性:https://laravel.com/docs/7.x/releases。...声明:以上内容整理自 Laravel News,原文链接:https://laravel-news.com/laravel7。

    2.6K10

    Laravel学习笔记(五)——视图,数据的外衣

    Laravel中,都是控制器将数据传给指定的视图的。其中,控制器在传递数据的时候有以下两种方式。 view函数第二个参数 第一种方式就是将数据作为view的第二个参数一并传输给指定的视图。...student.detail') -> with(['student' => $student]);// 将获取到的学生信息数据传递给student.detail模板 就我个人而言的话,更倾向于使用with的方式传,...模板使用数据 对于传入的数据,模板是怎样整合到html当中的呢?这就是blade模板起到的作用了。...如果传入的数据为单一,则在blade模板中只需要将变量放入{{}}中即可。如果传入的数据为数组,可以在数组后面用 -> 然后接数值名称表示某一数值。...-- 输出学生信息 --> OK,如果你学完了这几章的内容,你应该可以利用Laravel上手并开发一个简单的项目了,享受编程的乐趣吧!

    2.6K00

    竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(2)模型工厂类

    2020年9月8号,Laravel发布了8.0版本。Laravel计划于2022年1月25日发布9.0版本。...组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...Laravel Jetstream Laravel Jetstream 是为 Laravel 设计的精美的应用程序脚手架。...Jetstream 是使用 Tailwind CSS 设计的,你可以选择 Livewire 或 Inertia 脚手架。...例如,你的 User 模型 有个 suspended 属性,现在你想修改它的一个默认的属性,你可以使用基类工厂类的 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型的 PHP 方法。

    2.8K41

    Laravel 中使用 DingoAPI

    API_VERSION API_PREFIX API_DOMAIN API_NAME API_STRICT API_DEBUG 接下来 针对以上配置一一作出解释: API_STANDARDS_TREE : 有三个可选:...x : 本地开发的或私有环境的 prs : 主要用于非商业销售的项目,对外发布 vnd :对外公开,所有用户可以访问 API_SUBTYPE :项目的简称,或者项目名称 API_VERSION...API_STRICT : 严格解析,为 true 或 false,默认为 false ,开启严格解析,意味着你不可以使用浏览器来进行访问。...接下来,我们新建控制器来替换路由的示例代码。 首先,我们新建一个基类控制器,让我们的所有其他控制器,默认继承我们新建的控制器。...,我们将所有有关接口的控制器都放到Api 目录下.增加 v1 和 v2 我们是为了后续的版本管理 打开这两个控制器, 替换如下代码: <?

    2.2K10

    关于Laravel参数验证的一些疑与惑

    验证器怎么创建的,谁创建的 Laravel 文档调用验证器,除了通过控制器,还有就是通过Facades的方式创建验证器对象。...1 通过extend方法扩展 //这是一个简单的参数比较的验证规则,Laravel5.8中提供,Laravel5.5中提供 //验证规则如下: 'max_num'= 'gte:min', Validator...扩展函数返回布尔,返回true则表示验证通过,返回false表示验证失败。...如果想要通过自定义验证规则类实现上面两个字段大小比较的验证规则,则需要自定义验证类,修改validateUsingCustomRule方法,将当期验证器传入到自定义验证规则实例对象中去。...如果需要实现,则需要使用自定义验证器,将验证器传入到验证规则中去。 Laravel本身提供了ClosureValidationRule的验证规则用于处理回调函数验证规则。

    6.6K31
    领券