Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何在Laravel中使用查询构造器_创想鸟

如何在Laravel中使用查询构造器

laravel查询构造器是与数据库交互的核心工具,它提供流畅接口构建sql查询,防止sql注入。1.基础操作包括获取记录、插入、更新、删除数据;2.支持复杂查询如条件过滤、排序、分组聚合、联表查询;3.与eloquent orm不同,查询构造器更轻量高效,适合简单查询;4.处理复杂条件可用闭包分组逻辑;5.性能优化包括选择指定列、使用索引、避免循环查询、限制结果集、批量操作等。掌握这些技巧可提升开发效率和应用性能。

如何在Laravel中使用查询构造器

在Laravel中,使用查询构造器(Query Builder)是与数据库交互的核心方式之一。它提供了一个流畅、方便的接口,让你能够以编程的方式构建和执行各种数据库查询,而无需直接手写SQL语句。这极大地提升了开发效率和代码的可读性,同时也能有效防止SQL注入等安全问题。

解决方案

Laravel的查询构造器提供了一套非常全面的方法来执行数据库操作,包括数据查询、插入、更新和删除。它的强大之处在于其链式调用(chainable)的特性,你可以将多个查询方法串联起来,构建出复杂的查询逻辑。

基础查询操作:

要开始使用查询构造器,通常会通过DB门面(Facade)的table方法指定要操作的表。

use IlluminateSupportFacadesDB;// 获取表中所有记录$users = DB::table('users')->get();// 获取单条记录$user = DB::table('users')->where('id', 1)->first();// 获取特定列$names = DB::table('users')->pluck('name'); // 获取所有用户的name列值,返回一个集合$name = DB::table('users')->where('id', 1)->value('name'); // 获取单个用户的name列值// 插入数据DB::table('users')->insert([    'name' => 'John Doe',    'email' => 'john@example.com',    'password' => bcrypt('password'),]);// 插入多条数据DB::table('users')->insert([    ['name' => 'Jane Doe', 'email' => 'jane@example.com'],    ['name' => 'Mike Smith', 'email' => 'mike@example.com'],]);// 更新数据DB::table('users')    ->where('id', 1)    ->update(['name' => 'Updated Name']);// 删除数据DB::table('users')->where('id', 1)->delete();// 清空表(不带where条件)// DB::table('users')->truncate(); // 注意:truncate会重置自增ID

更复杂的查询:

查询构造器支持各种条件、排序、分组和聚合函数。

// 条件查询$activeUsers = DB::table('users')    ->where('status', 'active')    ->where('votes', '>', 100)    ->get();// 或条件$users = DB::table('users')    ->where('votes', '>', 100)    ->orWhere('name', 'John')    ->get();// 范围查询$usersBetween = DB::table('users')    ->whereBetween('votes', [1, 100])    ->get();// 排序$sortedUsers = DB::table('users')    ->orderBy('name', 'desc')    ->get();// 分组和聚合$userCount = DB::table('users')->count();$avgVotes = DB::table('users')->avg('votes');$maxVotes = DB::table('users')->max('votes');$usersByStatus = DB::table('users')    ->select('status', DB::raw('count(*) as total'))    ->groupBy('status')    ->having('total', '>', 5) // 过滤分组结果    ->get();// 联表查询 (Join)$usersWithPosts = DB::table('users')    ->join('posts', 'users.id', '=', 'posts.user_id')    ->select('users.name', 'posts.title')    ->get();// 左联结$usersLeftJoinPosts = DB::table('users')    ->leftJoin('posts', 'users.id', '=', 'posts.user_id')    ->select('users.name', 'posts.title')    ->get();

通过这些方法,你可以灵活地构建出几乎任何你需要的SQL查询。

Laravel查询构造器与Eloquent ORM有什么区别

这个问题经常被提及,理解它们之间的差异对于选择合适的工具至关重要。简单来说,查询构造器和Eloquent ORM都是Laravel与数据库交互的方式,但它们在抽象层次和功能侧重点上有所不同。

查询构造器更接近SQL本身,它操作的是数据库表,返回的结果通常是stdClass对象(或数组)。当你使用DB::table('users')时,你实际上是在直接与users这张表打交道。它的优势在于轻量、高效,对于一些简单的、不需要模型层额外逻辑的查询(比如纯粹的统计、批量更新或删除),查询构造器往往是更直接的选择。它不涉及模型实例的创建、事件触发或关系加载,因此在某些场景下性能会更好。我个人在处理一些报表生成或者数据迁移脚本时,就更倾向于直接使用查询构造器,因为它能让我更专注于SQL逻辑本身,减少不必要的ORM开销。

而Eloquent ORM(Object-Relational Mapper)则是Laravel提供的更高级的数据库抽象层。它基于模型(Model)的概念,每个模型通常对应数据库中的一张表。当你使用User::find(1)时,你操作的是一个User模型实例,而不是直接操作users表。Eloquent的强大之处在于它提供了丰富的面向对象特性,比如定义模型间的关系(一对一、一对多等)、自动处理时间戳、属性访问器(Accessors)和修改器(Mutators)、事件监听等。它让数据库操作变得更“面向对象”,代码更具可读性和可维护性,尤其是在构建复杂业务逻辑时,Eloquent的便利性是查询构造器无法比拟的。但相对地,它会有一些额外的开销,比如模型实例化、关系加载等,这在处理大量数据时可能会体现出来。

所以,选择哪个取决于你的具体需求:如果只是简单的数据查询或操作,不需要模型的额外功能,查询构造器会更直接高效;如果你的操作涉及到复杂的业务逻辑、模型关系、数据转换等,那么Eloquent ORM无疑是更优雅、更强大的选择。很多时候,它们也并非互斥,你可以在Eloquent查询中嵌入查询构造器的部分,比如使用User::whereIn('id', DB::table('other_table')->select('user_id'))这样的组合。

如何使用Laravel查询构造器处理复杂查询和条件?

处理复杂查询和条件是查询构造器的一大强项。它提供了一系列灵活的方法来构建嵌套条件、高级联结以及子查询等。

嵌套条件与逻辑分组:

当你的ANDOR条件需要进行逻辑分组时,查询构造器的where方法接受一个闭包(closure)作为第二个参数。这非常类似于SQL中的括号()

use IlluminateSupportFacadesDB;// 查找 (votes > 100 AND status = 'active') OR (name = 'John Doe') 的用户$users = DB::table('users')    ->where(function ($query) {        $query->where('votes', '>', 100)              ->where('status', 'active');    })    ->orWhere('name', 'John Doe')    ->get();// 对应的SQL大致是:SELECT * FROM users WHERE (votes > 100 AND status = 'active') OR name = 'John Doe'

这种方式让你可以清晰地表达复杂的布尔逻辑。你甚至可以在闭包部继续嵌套闭包,实现多层逻辑分组。

高级联结(Join):

除了前面提到的joinleftJoin,查询构造器还支持更复杂的联结条件,比如多条件联结或子句联结。

// 联结多个条件$users = DB::table('users')    ->join('contacts', function ($join) {        $join->on('users.id', '=', 'contacts.user_id')             ->where('contacts.status', 'active'); // 联结时额外条件    })    ->get();// 子查询联结 (虽然通常不直接用于join方法,但在某些场景下可以模拟)// 更常见的是在whereExists或selectSub中使用子查询

子查询:

子查询在数据库操作中非常常见,查询构造器也提供了相应的支持。

whereExists / whereNotExists 检查子查询是否存在记录。

// 查找至少有一篇活跃文章的用户$usersWithActivePosts = DB::table('users')    ->whereExists(function ($query) {        $query->select(DB::raw(1)) // 只需要返回一个值表示存在              ->from('posts')              ->whereRaw('posts.user_id = users.id') // 关联外部查询              ->where('posts.status', 'published');    })    ->get();

selectSub / fromSub 将子查询的结果作为列或作为表。

// 选择用户及其最新的文章标题(假设posts表有created_at)$usersWithLatestPost = DB::table('users')    ->select('users.name', 'latest_posts.title as latest_post_title')    ->joinSub(function ($query) {        $query->from('posts')              ->select('user_id', 'title')              ->orderBy('created_at', 'desc')              ->groupBy('user_id'); // 注意:这里groupBy可能需要结合max(created_at)等来确保取到“最新”                                    // 更严谨的最新文章子查询可能需要窗口函数或更复杂的自联结    }, 'latest_posts', function ($join) {        $join->on('users.id', '=', 'latest_posts.user_id');    })    ->get();

对于获取“最新”或“第一条”记录的子查询,通常需要更精细的SQL逻辑,比如使用ROW_NUMBER()窗口函数(如果数据库支持)或通过关联子查询来找到最新ID。

原始表达式(Raw Expressions):

蓝心千询 蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

蓝心千询 34 查看详情 蓝心千询

当你需要执行一些查询构造器没有直接提供的方法,或者需要使用数据库特定的函数时,可以使用DB::raw()

// 使用数据库函数$users = DB::table('users')    ->select(DB::raw('count(*) as user_count, status'))    ->whereRaw('age > ? and votes > ?', [25, 100]) // 原始where子句    ->groupBy('status')    ->get();// 也可以用于排序$users = DB::table('users')    ->orderBy(DB::raw('RAND()')) // 随机排序    ->limit(10)    ->get();

DB::raw()提供了极大的灵活性,但使用时要格外小心,因为它会绕过查询构造器的某些安全机制,你需要自己确保传入的SQL是安全的,以防SQL注入。

使用Laravel查询构造器时常见的性能考量和优化技巧?

性能优化在任何应用中都是一个持续的话题,即使是使用查询构造器,也需要注意一些细节来避免潜在的性能瓶颈。

1. 精确选择列(Select Specific Columns):

这是最基本也最重要的优化之一。很多开发者习惯性地使用->get()而不指定select,这相当于SELECT *。如果你的表有很多列,但你只关心其中的几列,那么传输所有列的数据会造成不必要的网络开销和内存占用。

// 优化前:// $users = DB::table('users')->get(); // 获取所有列// 优化后:只获取id、name和email$users = DB::table('users')->select('id', 'name', 'email')->get();

这个习惯在小表上可能不明显,但当表数据量达到百万级,或者在循环中频繁查询时,累积的开销会非常显著。

2. 索引的合理利用:

数据库索引是提升查询性能的基石。确保你在where子句、join条件、orderBy子句中使用的列都建立了合适的索引。没有索引的查询,数据库可能需要进行全表扫描,这在数据量大时是灾难性的。

例如,如果你经常按emailstatus字段查询用户,就应该为这些字段添加索引:

ALTER TABLE users ADD INDEX idx_email (email);ALTER TABLE users ADD INDEX idx_status (status);

在使用whereBetweenwhereIn等方法时,涉及的列也应考虑索引。

3. 避免在循环中执行查询(N+1问题):

虽然N+1问题更多地与Eloquent ORM的惰性加载(Lazy Loading)相关,但其核心思想也适用于查询构造器。如果你在循环中为每一条记录执行一个额外的查询来获取关联数据,那么你可能正在制造N+1问题。

// 假设你想获取每个用户的最新订单// 糟糕的方式(可能导致N+1):$users = DB::table('users')->get();foreach ($users as $user) {    // 每次循环都执行一个新查询    $latestOrder = DB::table('orders')        ->where('user_id', $user->id)        ->orderBy('created_at', 'desc')        ->first();    // ...处理$latestOrder}// 优化方式:使用联结或子查询一次性获取$usersWithLatestOrder = DB::table('users')    ->leftJoinSub(function ($query) {        $query->from('orders')              ->select('user_id', 'order_details', DB::raw('MAX(created_at) as latest_created_at'))              ->groupBy('user_id');    }, 'latest_orders_summary', 'users.id', '=', 'latest_orders_summary.user_id')    ->select('users.*', 'latest_orders_summary.order_details')    ->get();// 更复杂的场景可能需要更精妙的SQL,比如使用窗口函数或多次联结

核心思想是尽量减少数据库往返次数。

4. 限制结果集大小(Limit/Offset):

对于需要分页或只显示部分数据的场景,务必使用limit()offset()方法。

// 获取前10条用户数据$users = DB::table('users')->limit(10)->get();// 获取第二页的10条数据(跳过前10条)$users = DB::table('users')->offset(10)->limit(10)->get();

需要注意的是,当offset值非常大时,数据库仍然可能需要扫描大量行才能跳到指定位置,这在某些数据库(如MySQL)上会成为性能瓶颈。对于大数据量的分页,可以考虑基于游标(cursor-based)的分页或使用where条件来优化。

5. 调试和分析SQL:

Laravel查询构造器提供了toSql()方法来查看即将执行的SQL语句,这对于调试和优化非常有用。

$query = DB::table('users')    ->where('status', 'active')    ->orderBy('created_at', 'desc');echo $query->toSql(); // 输出生成的SQL语句// 还可以用dd($query->getBindings()); 来查看绑定的参数// 如果想直接查看执行结果,可以使用dd($query->get());

拿到SQL语句后,你可以在数据库客户端(如MySQL Workbench, DBeaver, PhpMyAdmin等)中运行EXPLAIN命令来分析查询的执行计划,找出潜在的性能瓶颈,比如是否使用了索引、是否进行了全表扫描等。这是我排查性能问题的常用手段,比盲目猜测要有效得多。

6. 批量操作:

对于大量数据的插入、更新或删除,尽量使用批量操作而不是循环单条操作。查询构造器提供了insert(), update(), delete()等方法,它们在内部会优化为单条SQL语句(或少量语句)来处理多条数据。

// 批量插入DB::table('users')->insert([    ['name' => 'Alice', 'email' => 'alice@example.com'],    ['name' => 'Bob', 'email' => 'bob@example.com'],]);// 批量更新(例如,将所有未激活用户设置为活跃)DB::table('users')    ->where('status', 'pending')    ->update(['status' => 'active']);

这些优化技巧并非孤立存在,它们常常需要结合使用,并且要根据具体的业务场景和数据量来权衡。性能优化是一个持续迭代的过程,没有一劳永逸的解决方案。

以上就是如何在Laravel中使用查询构造器的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/276070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Android中如何将整个布局嵌入Fragment?
上一篇 2025年11月4日 14:36:55
linux版本查看命令
下一篇 2025年11月4日 14:36:59

相关推荐

  • 怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法

    怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法怎样在iPhone情侣模式中分享视频?快速上传和同步的实用方法

    最实用的方法是使用iCloud共享相簿,它支持情侣间视频快速上传与实时同步。首先双方需开启iCloud照片中的共享相簿功能,然后创建专属相簿并邀请对方加入。此后,任一方添加的视频会自动同步至对方设备,且不占用个人iCloud空间。相比AirDrop(限近距离)、即时通讯工具(压缩画质)或云盘(占存储…

    2026年9月22日 用户投稿
    000
  • 想靠抖音带货赚钱?教你一键挂小黄车教程

    想靠抖音带货赚钱?教你一键挂小黄车教程想靠抖音带货赚钱?教你一键挂小黄车教程想靠抖音带货赚钱?教你一键挂小黄车教程想靠抖音带货赚钱?教你一键挂小黄车教程

    想靠抖音带货赚钱并不复杂,关键在于掌握正确方法。一、开通商品橱窗权限:需实名认证并发布原创视频,确保账号无违规记录;二、视频挂载小黄车:发布视频时点击“添加商品”按钮,选择商品并设置展示位置与时间;三、选品提升转化率:贴合视频内容、关注价格销量、参考热榜商品并测试不同组合;四、直播挂小黄车:互动性强…

    2026年9月22日 用户投稿
    100
  • 如何判断网络延迟(Ping值)过高是由运营商问题还是自身设备引起的?

    先重启设备并检查本地连接,若有线网络延迟降低则问题在无线信号;通过ping网关和外部DNS判断故障范围,结合tracert追踪路径,前几跳异常指向运营商问题,最后用官方测速工具验证并联系客服解决。 判断网络延迟高是运营商还是自身设备的问题,关键在于逐步隔离排查。从最接近你的设备开始测试,向外层层推进…

    2026年9月22日
    100
  • VSCode如何实现代码混淆 VSCode保护源代码的加密方案

    代码混淆无法通过vscode直接实现,需借助外部工具或构建流程。1. 使用构建工具如webpack或rollup配合terser等混淆器,在打包时自动混淆代码,通过vscode配置tasks.json运行构建任务。2. 可选vscode插件辅助,但应评估其安全性、混淆强度、性能影响、配置灵活性及社区…

    2026年9月22日
    100
  • 运营蝴蝶号必懂的五大策略,帮你迅速提升粉丝活跃度

    运营蝴蝶号必懂的五大策略,帮你迅速提升粉丝活跃度运营蝴蝶号必懂的五大策略,帮你迅速提升粉丝活跃度运营蝴蝶号必懂的五大策略,帮你迅速提升粉丝活跃度运营蝴蝶号必懂的五大策略,帮你迅速提升粉丝活跃度

    要真正提升“蝴蝶号”粉丝活跃度,核心在于建立深层次连接与持续价值输出。1.内容需有“钩子”,引发粉丝思考和表达欲;2.互动要升级为共创场景,如提问、投票、征集等方式增强参与感;3.构建专属社群(如微信群、discord)强化归属感;4.利用数据分析找准内容方向与粉丝活跃时段;5.跳出单平台思维,进行…

    2026年9月22日 用户投稿
    100
  • AdobeIllustrator如何导出AI生成的图片?矢量图像保存的步骤

    首先明确输出需求,再选择“文件>导出>导出为…”或“文件>存储为…”,根据用途选取合适格式如SVG、PDF或AI,确保矢量信息保留,参数设置需匹配目标平台要求。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ Adob…

    2026年9月22日
    000
  • PHP面向对象开发:解决父类构造器参数在嵌套子对象方法中丢失的问题

    在PHP面向对象编程中,我们经常会遇到类继承和对象组合的场景。一个常见的问题是,当父类构造函数接收参数并用于初始化内部的子对象时,该子对象的方法在后续调用中可能无法正确访问到这些参数,甚至显示为null。本文将深入探讨这一问题,并提供两种有效的解决方案。 引言与问题阐述 考虑一个典型的web应用架构…

    2026年9月22日
    000
  • 使用MockWebServer对FeignClient进行单元测试

    本文详细阐述了如何利用Spring Cloud LoadBalancer和MockWebServer对FeignClient进行高效单元测试。通过在测试配置中动态注册MockWebServer实例,并将其作为FeignClient的服务发现目标,开发者可以精确模拟后端API的行为,包括各种HTTP响…

    2026年9月22日
    000
  • Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力

    Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力Sublime快速定位MySQL死锁与阻塞问题_提高系统稳定性与并发处理能力

    mysql死锁和阻塞问题可通过sublime分析日志排查。1.使用关键词搜索及正则匹配快速定位死锁信息块;2.通过查找waiting状态事务并折叠无关内容聚焦阻塞链;3.结合general log与事务id查找sql执行顺序;4.利用语法高亮、列选择等功能提升日志可读性。这些方法能有效提高排查效率。…

    2026年9月22日 用户投稿
    100
  • 常见分布式任务调度工具浅析

    一、背景 在日常业务中,经常会遇到需要在特定时间执行任务或周期性执行任务的需求。这些任务通常被归类为定时任务。为了满足这种需求,各种任务调度框架应运而生,如Timer、ScheduledThreadPoolExecutor(没错,它也可以用于定时任务)、Quartz等。然而,随着分布式和微服务的发展…

    2026年9月22日
    100
  • Canva中AI生成图片如何导出?教你快速保存设计作品的方法

    答案:Canva中导出AI生成图片的操作与普通图片相同,点击右上角“分享”按钮,选择“下载”,可选PNG、JPG、PDF、SVG、MP4或GIF等格式;为保证画质,建议优先选用PNG格式,避免有损压缩,同时选择高分辨率和合适尺寸,Pro用户可进一步调整质量与透明背景设置;除下载外,还可通过分享链接、…

    2026年9月22日
    800
  • windows怎么用命令行删除顽固文件_命令行删除顽固文件的方法

    使用命令行可强制删除顽固文件,先以管理员身份运行cmd或PowerShell,通过del /f /q或Remove-Item -Force命令删除文件,若被占用则用taskkill终止进程,或进入安全模式删除,也可用rd /s /q删除整个目录。 如果您尝试删除某个文件时,发现资源管理器无法完成操作…

    2026年9月22日
    200
  • Linux系统中文件属性和权限实战操作

    Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作

    —–原本今天的文章是昨天晚上就要更新的,但是由于昨天晚上下班回到住的地方,发现停电了,所以就没写成。今天是在上一篇文章–linux系统中文件类型的基础上,继续进行深入的学习。好了,直接开干。 一、文件的操作权限: 1、在这之前我想还是很有必要介绍对文件的操作权限(…

    2026年9月22日 用户投稿
    000
  • PHP中为数组元素设置默认值的最佳实践:使用Null合并运算符

    本教程将介绍如何在PHP中为数组元素设置默认值,尤其当源数据可能为空或缺失时。通过利用PHP 7+提供的Null合并运算符(??),可以简洁高效地实现这一需求,避免冗长的条件判断,提高代码可读性和健壮性。 引言:处理缺失或空值时的数组赋值 在Web开发中,我们经常需要从用户请求、数据库查询或其他外部…

    2026年9月22日
    000
  • VSCode快速配置Dart:Flutter开发、中文提示、热加载

    安装vscode并下载flutter sdk,解压至无中文或特殊字符的路径;2. 将flutter sdk的bin目录添加到系统环境变量path中;3. 打开新终端执行flutter doctor,根据提示安装缺失的依赖;4. 在vscode扩展商店安装dart和flutter扩展;5. 确保在调试…

    2026年9月22日
    200
  • MySQL中如何导入和导出数据_常用格式有哪些?

    MySQL中如何导入和导出数据_常用格式有哪些?MySQL中如何导入和导出数据_常用格式有哪些?MySQL中如何导入和导出数据_常用格式有哪些?MySQL中如何导入和导出数据_常用格式有哪些?

    mysql中导入导出数据常用方式有三种:一是使用mysqldump导出为sql文件,适合整库或单表备份迁移,命令如mysqldump -u root -p mydb > /backup/mydb.sql;二是通过select into outfile导出csv文件,适用于数据分析与excel处…

    2026年9月22日 用户投稿
    400
  • Inkscape如何导出AI生成的矢量图片?教你快速保存图像的步骤

    答案:在Inkscape中导出矢量图需根据用途选择格式,网页用优化SVG并转文本为路径,印刷则导出为PDF/EPS、转文字为路径、确保高分辨率位图,同时注意颜色模式与出血设置。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 在Inkscap…

    2026年9月22日
    700
  • MuseScore Studio 4.6.2 发布

    MuseScore 是一款支持多平台的所见即所得(WYSIWYG)音乐制谱工具。近日,MuseScore 4.6.2 正式上线,此次版本更新重点修复了多个关键性的回归问题。 值得一提的是,本版本重新恢复了对 macOS 10.15 及 macOS 11 系统的支持。此前在 4.6 版本中,由于升级至…

    2026年9月22日
    000
  • Laravel 8 登录后重定向至仪表盘的策略与实践

    本教程详细阐述了在 Laravel 8 中实现用户登录后重定向到仪表盘的多种策略。我们将探讨如何通过配置 LoginController 的 $redirectTo 属性、利用 RouteServiceProvider 定义常量以及在自定义登录方法中进行精确控制来管理重定向流程。文章还涵盖了相关中间…

    2026年9月22日
    000
  • 如何在iPhone情侣模式中启用视频通话?快速连接彼此的设置方法

    如何在iPhone情侣模式中启用视频通话?快速连接彼此的设置方法如何在iPhone情侣模式中启用视频通话?快速连接彼此的设置方法如何在iPhone情侣模式中启用视频通话?快速连接彼此的设置方法如何在iPhone情侣模式中启用视频通话?快速连接彼此的设置方法

    iPhone虽无官方“情侣模式”,但可通过FaceTime或微信、WhatsApp等第三方应用实现高质量视频通话。首选FaceTime,操作便捷、画质清晰,支持SharePlay共享影音,仅限苹果设备;跨平台可选微信、WhatsApp等,注重隐私可用Telegram。优化体验需稳定网络、良好光线与背…

    2026年9月22日 用户投稿
    200

发表回复

登录后才能评论
关注微信