首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    分享一个 JSON 相关小需求的解决过程与思路

    起因 昨天同事问我,能不能在接口返回中不要将中文转成 Uncode 编码,因为这是 Laravel 框架做的事情,所以我们要实现这个效果无非就是在 json_encode 第二个参数中加入常量 JSON_UNESCAPED_UNICODE...选项即可,但是我们在控制器返回的是对象,或者是数组,这个 encode 动作是框架最后输出前完成的。...$content instanceof JsonSerializable || is_array($content); } 最后通过 morphToJson 完成了转化动作...json_encode($content->toArray()); } return json_encode($content); } 所以聪明的你已经发现了,这里的 json_encode 没有传递任何选项...json_encode 选项,所以,我们只需要在我们的 Resource 基类(我们接口返回值都使用了一个 Resource 基类 App\Http\Resources\Resource)中添加如下方法即可

    91020

    在 Laravel 中编写高级的 Artisan 命令

    参数和选项 通过上一篇教程,我们已经知道 $signature 属性可以配置命令名称,除此之外,还可以将 Artisan 命令的参数和选项定义在里面,添加参数和选项到 Artisan 命令非常简单,我们以系统自带的...要为可选参数定义默认值,可以这么做: make:migration {name=create_users_table} 选项:必须设值、默认值以及缩写 选项和参数很像,但是选项有前缀 --,而且可以在没有值的情况下使用...),如果用户没有选择,直接回车的话就会将 $city 设置为默认值 北京。...这两种方式都需要传递两个参数:第一个参数是命令名(比如 welcome:message),第二个参数是以数组形式传递的命令参数和选项。...,如果选项没有值的话,以 true 或 false 替代。

    8.3K20

    Laravel 7发行说明

    这些令牌可以被授予能力/作用域,用于指定允许令牌执行哪些动作。 有关 Laravel Sanctum 的更多信息, 请查看 Sanctum 文档。...举个例子,下面我们将内置的 json 类型转换以自定义类型转换的形式重新实现一遍: Laravel 7 允许你在路由参数中指定某个字段: Route::get('api/posts/{post:slug}', function (App\Post $post) { return...默认情况下,Laravel 将使用 mail 配置文件中的 default 选项指定的邮件驱动作为邮件驱动。然而,你可以通过 mailer 方法来使用特定的邮件驱动来发送邮件。...此外,运行器将在第一次测试失败时自动停止: php artisan test 可以传递给 phpunit 命令的任何参数也可以传递给 Artisan test 命令: php artisan test

    9K20

    Laravel Ignition 功能全解析

    尽管在 Laravel 中 Whoops 是默认值,但它是一个框架无关的(错误收集展示)。它仅仅显示通用信息。 ? 这是 Ignition 的截图,我们建立的新的错误视图。...post 模型($post 变量),以转化后数组(toArray )形式呈现。...对于不需要任何绑定的 “简单” 路由参数也是如此。这是一个很好的方法,可以很容易地看到 Laravel 为这个特定的路由接收了什么信息。 在路由参数之后,我们还将向您显示在此请求中使用的中间件列表。...甚至:我们还将给出传递给视图的所有数据的列表。 用户选项卡 ? "用户" 选项卡包含有使用应用程序的用户和浏览器的更多信息。 上下文选项卡 ?...您可以将参数从异常发生的请求传递到将运行解决方案的请求。让 getRunParameters返回一个数组。该数组将被传递给 run。

    3.1K40

    【laravel7.x中文文档】Redis

    配置 您的 Laravel 应用的 Redis 配置文件都在 config/database.php 中。...Facade 共存,需要在配置文件 config/app.php 的别名配置中修改 Illuminate\Support\Facades\Redis Facade 别名,如修改为: RedisManager,以保证不与...Laravel 使用魔术方法将命令传递给 Redis 服务器,因此只需传递 Redis 命令所需的参数即可: Redis::set('name', 'Taylor'); $values = Redis...::lrange('names', 5, 10); 或者,你也可以使用 command 方法将命令传递给服务器,它接受命令的名称作为其第一个参数,并将值的数组作为其第二个参数: $values = Redis...这个 $channel 名称将作为第二个参数传递给提供的回调 闭包: Redis::psubscribe(['*'], function ($message, $channel) { echo

    1.5K10

    Laravel 集合 Collection

    #17.flatMap方法,遍历集合并将其中的每个值传递到给定的回调。 #可以通过回调修改每个值的内容再返回出来,从而形成一个新的被修改过内容的集合。...'); // taylor #可以选择性地传递默认值作为第二个参数: $collection = collect(['name' => 'taylor', 'framework' => 'laravel...'); // taylor #可以选择性地传递默认值作为第二个参数: $collection = collect(['name' => 'taylor', 'framework' => 'laravel...#33.map方法,遍历集合并将每一个值传入给定的回调。 #该回调可以任意修改项目并返回,从而形成新的被修改过项目的集合。...$collection = collect(['a', 'b', 'c', 'd', 'e', 'f']); $collection->nth(4); // ['a', 'e'] #也可以选择传入一个偏移位置作为第二个参数

    5.7K20

    【Laravel系列2.3】Laravel运行命令行脚本

    接下来我们把接收参数和输出信息一起做了。接收参数需要在 signature 中定义我们要接收的参数及选项。还记得我们之前讲过的在 PHP 中如何接收脚本参数及选项信息的文章吗?...其中,通过 arguments() 和 argument() 可以接收到脚本的参数信息,通过 options() 和 option() 可以接收到脚本的选项信息。...关于参数和选项的问题,之前的文章中我们也讲解过了,这里也就不多说了,一切都是以基础为准的。...参数选项源码分析 对于参数和选项来说,Laravel 的底层调用的其实是 symfony 的 Console 组件,在 symfony/console/Input/ArgvInput.php 中,我们可以看到下面这些代码...,然后将它们放到 input 变量中向下传递。

    1.7K20

    PHP-web框架Laravel-MVC架构

    Laravel是一个基于MVC(Model-View-Controller)架构的Web框架,它采用了一种分层的设计模式,将应用程序分为三个主要的组成部分:模型(Model)、视图(View)和控制器(...Model在Laravel中,模型是处理与数据库交互的主要组件。它们代表着应用程序的数据层,并且负责从数据库中检索数据、对数据进行操作并将数据存储回数据库中。...控制器负责将模型和视图组合在一起以生成Web应用程序的响应。控制器通常包含多个动作(action),每个动作对应一个HTTP请求和响应。...下面是一个简单的控制器示例,它包含一个名为“index”的动作,该动作将从数据库中检索用户数据并将其传递给视图:namespace App\Http\Controllers;use App\User;use...我们定义了一个名为“index”的动作,它将使用User模型从数据库中检索所有用户,并将它们传递给名为“users.index”的视图。我们可以在视图中使用Blade模板引擎来呈现这些数据。

    1.9K41

    Laravel API教程:如何构建和测试RESTful API

    文章正文 随着移动开发与JavaScript框架的兴起,使用RESTful API为数据与客户端之间构建单一接口成为最佳选择。 Laravel 是一个 专注提高开发人员生产力的php开发框架。...标准成功代码和默认选项。 201:创建对象。有用的store行动(action)。 204: 无内容。当一个动作执行成功,但没有内容返回。 206:部分内容。当您必须返回分页的资源列表时很有用。...无法通过验证的请求的标准选项。 401:未经授权 用户需要进行身份验证。 403:禁止 用户已通过身份验证,但没有执行操作的权限。 404: 未找到。当没有找到资源时,这将由Laravel自动返回。...Laravel随身携带身份验证,但我们仍然需要调整一下以返回我们想要的答复。 控制器利用RegistersUsers trait来实现注册。...您可以使用许多外部工具来测试您的API; 然而,Laravel内部的测试是一个更好的选择 - 我们可以拥有测试API结构和结果的所有好处,同时保留对数据库的完全控制。

    20.4K20

    Laravel Sanctum API 授权

    简单来说,前后端分离的项目,使用 token 验证登陆状态,可以选它;另外,同类型的还有 jwt 比较火 安装 Laravel 9 已经包含了 Laravel Sanctum,所以下面的步骤看看就行了...在存入数据库之前,API 令牌已使用 SHA-256 哈希加密过,但你可以使用 NewAccessToken 实例的 plainTextToken 属性访问令牌的纯文本值。...创建令牌后,你应该立即向用户显示此值: $token = $request->user()->createToken($request->token_name); return ['token' =>...你可以将字符串能力数组作为第二个参数传递给 createToken 方法: return $user->createToken('token-name', ['server:update'])->plainTextToken...修改 sanctum 的配置文件中的 expiration 选项(默认为 null),此选项设置的数字表示多少分钟后过期: // 365天后过期 'expiration' => 525600, 如果您的程序中配置了

    3.1K30

    推荐超好用的 6 款 Laravel Admin 管理模版

    图片 Laravel Admin 管理后台模板的不同类型 在搜索引擎中粗略搜索,你会得到大概 20多种 Laravel Admin 模板的选项,尽管它们表面上看起来很相似,但实际上在用途和架构存在着很大差异...在码匠为大家介绍一些受欢迎选项的具体功能前,让我们先了解 Laravel Admin 模板五个不同的种类,以便结合自身需求更好地做出判断: 脚手架 脚手架主要是通过程序,自动化地创建启动和运行所需的文件和配置来生成...、Argon 和 InfyOm Laravel Generator,以便您更好地了解 Laravel Admin 模板并选择出一款适合您的项目。...例如您可以编写一个将用户的会员订阅延长一个月的操作,先在资源文件中编写这方面逻辑,再在用户界面中检查,然后从动作下拉列表中选择操作。...优点 优秀的文档,包含视频教程 强大的前端主题 非商业项目的免费选项 缺点 如果您想要所有工具和选项,则相对昂贵 Voyager 与我们目前看到的其他管理模板包不同,Voyager 是 Laravel

    7.7K41

    Laravel源码解析之Console内核

    我们都知道PHP是通过全局变量 $_SERVER['argv']来接收所有的命令行输入的, 和命令行里执行shell脚本一样(在shell脚本里可以通过 $0获取脚本文件名, $1 $2这些依次获取后面传递给...shell脚本的参数选项)索引0对应的是脚本文件名,接下来依次是命令行里传递给脚本的所有参数选项,所以在命令行里通过 artisan脚本执行的命令,在 artisan脚本中 $_SERVER['argv...因为 artisan命令的语法中可以指定命令参数选项、有的选项还可以指定实参,为了减少命令行输入参数解析的复杂度,Laravel使用了 Symfony\Component\Console\Input对象来解析命令行里这些参数选项...(shell脚本里其实也是一样,会通过shell函数getopts来解析各种格式的命令行参数输入),同样地Laravel使用了 Symfony\Component\Console\Output对象来抽象化命令行的标准输出...return $exitcode; } } 执行命令时主要有三步操作: 通过命令行输入解析出命令名称和参数选项。 通过命令名称查找命令类的命名空间和类名。

    1.8K20

    如何在Ubuntu 14.04上使用Ansible部署多个PHP应用程序

    在你的剧本的顶部,除了旁边的hosts和tasks参数,你还可以自己定义一个vars参数,并在那里设置变量。 如果您还没有这样做,请从以前的教程中学习并将目录更改为ansible-php。...为此,我们添加with_items选项以循环我们的applications列表。...我们希望仅包含laravel应用程序的内容,使其成为默认值。为此,我们可以使用基本的IF语句来检查item.name是否等于laravel,如果是,则显示default_server。...nano host_vars/your_second_server_ip 您可以选择一个或多个示例应用程序并将其添加到主机文件中。...完成后,在浏览器中打开您选择的应用程序(我们在示例中使用了laravel.example2.com two.example2.com)并确认它们已正确设置。

    8.7K00

    什么是依赖注入

    php $_SESSION = 'fr'; 上例可以将用户选择的语言存储到会话的 language 变量里。...将会话名称作为参数传递或者作为一组选项可能是最好的解决方案,但是仍然很糟糕,因为这种方式将与 User 类无关的数据与 User 类耦合在一起。...「依赖注入」就是解决这种的问题,通过将 SessionStorage 对象以构造函数的参数传给 User 实例,替换直接在 User 类中实例化的方式即可实现以上需求: <?...Pico Container website 是这样描述依赖注入的: 「依赖注入」通过以构造函数参数,设值方法或属性字段等方式将具体组件传递给依赖方(译注:使用者)。...public function __construct($storage) { $this->storage = $storage; } // ... } 以设值方法注入

    2.6K10

    Laravel学习教程之广播模块详解

    前言 本文主要给大家介绍了关于Laravel广播模块的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 注意:本文是基于Laravel 5.4版本的路由模块代码进行分析书写; 简介...,第二个参数是事件名,第三个参数是广播内容 $driver->broadcast(['channel_1', 'channel_2'], 'login', ['message' => 'hello world...public function broadcastOn() { return [ new PrivateChannel('first-channel'), ]; } // 自定义广播名称;如果方法未定义,默认以类名为事件名...那是因为,后端定义的频道假设是A,那么在Pusher及浏览器端或移动端传递的私有频道名为private-A,存在频道则会是presence-A; 广播 直接广播 $manager = app(IlluminateBroadcastingBroadcastManager...附录 同类型的文章可参考以下,加深了解: Laravel学院 事件广播基础知识 Pusher 的认识

    1.5K50
    领券