我想要一个具有 Laravel 模型的所有特性和功能的 Laravel 模型,但模型的数据是完全静态的并且永远不会改变。我可以为其创建一个数据库表,但这留下了有人直接修改该表的可能性。
例如:
// Model Data for Log Levels
name | icon | color
-------------------------------------------
Emergency | fas fa-ambulance | red
Alert | fas fa-bullhorn | yellow
Critical | fas fa-heartbeast | orange
....
Run Code Online (Sandbox Code Playgroud)
这将是存储在模型文件中的数据,就像数据库表一样,但永远无法更改。这可能吗?
我正在尝试使用 JQuery 和 Ajax 来提交一组表单。表单并不总是具有相同数量的输入或相同的元素名称。
除了获取选中哪个单选按钮的值之外,该代码对我所拥有的一切都很好。它总是返回最后一个单选按钮的值。
这是我获取表单数据的方式:
var values = {};
var formdata = new FormData();
$('form :input').each(function()
{
formdata.append(this.name, $(this).val());
});
Run Code Online (Sandbox Code Playgroud)
我也试过:
$('form.ajax :input, form.ajax input[type=radio]:checked').each(function()
Run Code Online (Sandbox Code Playgroud)
获取选中单选按钮值的正确方法是什么?我希望不必为我提交的每个表单编写单独的函数。
我一直在尝试使用 Larave 的 Validator 类。正常提交表单时我可以让它工作,但是当我通过 AJAX 提交时出现错误:
\n\nPOST http://localhost/dashboard 422 (Unprocessable Entity)\nRun Code Online (Sandbox Code Playgroud)\n\n即使当我尝试我的表单的简单版本时:
\n\n<div class="container">\n <div class="row justify-content-center">\n <div class="col-6">\n @if ($errors->any())\n @foreach($errors->all() as $error)\n <div>\n {{ $error }}\n </div>\n @endforeach\n @endif\n <form action="/dashboard" method="post" id="test-form"> \n @csrf\n <input type="text" name="name" id="name" />\n <input type="submit">\n </form>\n </div>\n </div>\n</div>\n\n<script>\n $(\'#test-form\').on(\'submit\', function(e)\n {\n e.preventDefault();\n $.post($(this).attr(\'action\'), $(this).serialize())\n .fail(function(data)\n {\n console.log(data);\n })\n .done(function(res)\n {\n alert(\'done\');\n });\n });\n</script>\nRun Code Online (Sandbox Code Playgroud)\n\n我的控制器:
\n\n<?php\nnamespace App\\Http\\Controllers;\nuse Illuminate\\Http\\Request;\nclass DashboardController extends Controller\n{\n public function index()\n {\n return …Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Laravel 应用程序,并在全新安装的 Ubuntu 19.10.03 上以生产模式对其进行测试。全新 LAMP 安装(PHP 7.3、MySQL 8.0.19-0)。
我可以创建一个新数据库,以及一个对数据库具有完全访问权限的新用户,但 Laravel 要求用户也拥有“information_schema”数据库中的 SELECT 选项。这是我正在使用的过程:
$ sudo mysql
mysql> CREATE DATABASE IF NOT EXISTS `my-laravel-database`;
mysql> CREATE USER IF NOT EXISTS 'laravelUser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'myPass';
mysql> GRANT ALL PRIVILEGES ON `my-laravel-database`.* TO 'laravelUser'@'localhost' WITH GRANT OPTION;
mysql> GRANT SELECT ON `information_schema`.* TO 'laravelUser'@'localhost';
Run Code Online (Sandbox Code Playgroud)
最后一个命令总是返回
ERROR 1044 (4200): Access denied for user 'root'@'localhost' to database 'information_schema'
Run Code Online (Sandbox Code Playgroud)
我尝试运行mysql_secure_installation命令来设置 root 密码,但这没有帮助。我可以以 root 用户身份运行该应用程序,但我不想在生产中执行此操作。
我还尝试过全新安装 Ubuntu,只安装了 LAMP 服务。
我试图通过在文件中为它定义一个单独的部分来在我的刀片文件中定义我的页面特定的 Javascript。我可以在 app.js 文件中添加相同的 jQuery 代码,它可以正常工作,但是当我将它放入刀片文件时,我收到错误
Uncaught ReferenceError: $ is not defined
Run Code Online (Sandbox Code Playgroud)
布局文件 - app.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<script src="{{ asset('js/app.js') }}" defer></script>
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body class="fixed-nav sticky-footer bg-dark" id="page-top">
<!-- Navigation-->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" id="mainNav">
<!-- Nav Stuff -->
</nav>
<!-- End Navigation -->
<!-- Body -->
<div class="content-wrapper"> …Run Code Online (Sandbox Code Playgroud) laravel ×4
php ×4
javascript ×3
jquery ×3
ajax ×1
eloquent ×1
html ×1
mysql ×1
ubuntu ×1
validation ×1