问题标签 [laravel-5.8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - Laravel:如何确保用户在注册和登录后进入角色特定的主页视图?
我在 laravel-5.8 中为一个大学网站创建了一个自定义的多身份验证系统,每个用户都注册一个特定的角色:管理员、教师或 HOD(部门主管)。
我正在使用我们在运行后获得的控制器和视图
注册后,所有用户都将重定向到默认主页,无论其角色如何。这 3 个角色在用户表中存储为角色列下的 0、1 和 2。我修改了默认提供的用户表。
我的登录机制运行良好。用户被重定向到其角色的主页。这是我的做法:
登录控制器.php
这是来自login.blade.php的 POST 请求所使用的路由
但是每次我注册一个新用户时,它都会将用户带到教师主页路径,即使他们是管理员或 HOD。这是注册机制:
RegisterController.php (下面只展示相关函数)
我试图通过这样做使其正常工作:将变量更改redirectTo
为函数。//一个想法:替换“protected $redirectTo = '/home';” 经过...
但它不起作用,因为我似乎错过了一些东西。
另一个令人沮丧的是,用户登录后可以访问其他角色的主页。在middleware('auth')
我的路线中有助于防止在未登录时访问 URL,但它不会阻止已登录的用户访问其他主页。
以下是到主页的路线:
默认welcome.blade.php
也将登录的用户重定向到教师的主页:
- 如何确保用户在新注册和登录时访问正确的主页?
- 如何确保一个角色的主页无法访问其他角色?
编辑1:
合并@N69S 建议的更改后,发生了以下情况:
- 页面已成为特定角色。
- 一个角色无法访问另一个角色的页面,未经身份验证的用户无法查看除欢迎页面之外的任何页面。
该解决方案奏效了。但是当试图非法访问 URL 时,就会产生错误。但相反,用户被发送到欢迎页面。这个页面的右上角只有一个链接,叫做“HOME”。当管理员或 HOD 用户登录时,此链接不起作用,因为它路由到'/home'
如下所示:
如何更改此视图文件以将登录用户发送到其角色的 HOME?
php - laravel 5.8 在 ajax 请求上响应 500 内部服务器错误
我正在尝试向array
我的控制器发送一个以保存在数据库中,如果在这种情况下我将array a string
它保存到数据库中。所以当data: {'mapData' : arrayAllDrawings},
它崩溃时(arrayAllDrawings beeing一个数组)。但是当它像这样的字符串被硬编码时,data: {'mapData' : 'string'},
它会通过并保存在数据库中success message
storage/logs
服务器抛出 500 内部服务器错误时的错误日志
[2019-03-28 08:40:09] local.ERROR: 数组到字符串转换 {"userId":1,"exception":"[object] (ErrorException(code: 0): 数组到字符串转换在 C: \Users\Merlijn\AppData\Roaming\Composer\Laravel Projects\Forum\vendor\laravel\framework\src\Illuminate\Support\Str.php:354) [stacktrace]
我尝试JS
用 in 将数组变成 1 个长字符串,JS
但.toString()
仍然给出了同样的错误。
JS 数组的样子例如:
javascript代码ajax:
控制器:
ajax - 块上传不适用于大文件 - Laravel 5.8
我需要将大文件上传到我的网站,为此,我使用了Dropzone JS和pion/laravel-chunk-upload,我不明白,一切都是好的和真实的,但是尽管如此,任何大文件的上传未完成,上传小文件时,我得到了结果,但是当我尝试使用更大的文件时,例如 5MB,
- 它在主机上传的一部分停止,例如(Hostinger)
- 不起作用并从 Laravel验证器为 WampServer 4 (localhost)给出错误
我试图在这里删除我的验证器,但同样的问题,我无法上传或检查是否是有效文件或类似的东西!(对于本地主机)
我尝试了很多但我不明白问题并且找不到解决方案,请帮助,这是我的代码:
我的观点:
控制器:
JS:
php - 如何为 Laravel 模块架构应用 CRUD 生成器?
我已经使用以下命令在 Laravel 5.8 中创建了一个模块。
创建一个休假模块结构。但是如何使用 infyom(或其他)CRUD 生成器在此模块中创建 CRUD 操作?
laravel - 如何让 Session 在 Laravel 5.8 中工作
在 Laravel 5.8 中会话不起作用。
.env 设置:
SESSION_DRIVER=file
控制器文件index()
功能:
$request->session()->put('prediction','xyz');
我首先设置会话,然后尝试将其用于show()
控制器中的其他功能。
echo $request->session()->get('prediction');exit;
但这不起作用,它变得空白。
内核.php
php - Laravel Nova 按相关查询排序
我需要在 Laravel Nova 的相关查询中应用订单。
我已经尝试了此页面上的所有内容https://github.com/laravel/nova-issues/issues/156并且无法获得任何详细的方法来处理我的应用程序。
我有 3 个模型对这个问题很重要;事件、品牌和车辆。
多个品牌的活动 | 品牌属于许多活动
品牌有很多车辆 | 车辆属于一个品牌
事件属于许多车辆 | 车辆属于许多活动
当用户创建事件时,他们会继续选择与该事件关联的品牌。
这可以通过将下面的行放在我的 Nova 事件资源中的字段函数中来促进。
BelongsToMany::make('Brand')->sortable(),
一旦用户附加了关联的品牌,他们就会继续附加关联的车辆。
使用我在 Nova 事件资源中的相关查询填充车辆列表;
现在,当我去附加车辆时,它仅由与附加到事件的品牌相关的车辆填充。
问题是提供的选择框中的选项是按标题排序的。
我的车辆资源中有以下内容,我认为这是问题的根源;
public static $title = 'model';
但显然我需要在资源中使用它,以便选择框正确显示。
有谁知道我怎么可以用标题以外的东西来订购?我正在尝试按brand_id 订购。
laravel-5.8 - Laravel 5.8 访问错误messageBag 进行数组验证
我验证了一个二维数组,当验证器失败时,validator->errors()
包含:
现在我可以访问所有这样的错误:
这会将消息放入$error = "The 1.0 does not match the format d/m/Y.";
如何访问“1.0”键?
laravel-5.8 - 如何在 Laravel Envoy 脚本中设置密码?
在使用特使的 Laravel 5.8 中,我想在控制台命令中设置用户的密码,例如
在特使文件中:
但是在这两种情况下 $user_password 输出都是空的:1)如果在命令中设置了 serveruser_password
2)或者它是空的
但我预计“未定义”输出......
为什么会出错以及如何正确?
php - htmlspecialchars() 期望参数 1 在 Laravel 5.8 中是字符串
我正在设置地图,并想显示坐标。我需要做什么?
刀
模型
laravel-5.8 - Laravel:以多态一对多关系存储记录
我有三个相互关联的表抛出多态一对多关系
表
我想将电话号码添加到phones
与特定用户相关的表中
用户.php
电话.php
创建.blade.php
Javascript
我正在尝试将记录存储到手机中使用此代码UserController.php
但它给了我一个错误
传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 的参数 1 必须是 Illuminate\Database\Eloquent\Model 的实例,给定字符串,在 C:\Server\data\htdocs\justice_way\vendor\laravel 中调用\framework\src\Illuminate\Database\Eloquent\Relations\HasOneOrMany.php 在第 264 行
给dd($request)
了我
当我尝试
它给出了错误
传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,int 给定,在 C:\Server\data\htdocs\justice_way\vendor\laravel\framework\src\Illuminate\Database\Query 中调用\Grammars\Grammar.php 在第 871 行