首页 > 其他分享 > Laravel — P52:显式路由模型绑定

Laravel — P52:显式路由模型绑定

时间:2023-02-12 14:33:50浏览次数:49  
标签:Laravel function use Route verifiedUser user 显式 P52 User

什么时候需要显式绑定模型与使用 Laravel 的隐式绑定?我经常发现的一个常见问题没有适当或足够简单的回答。因此,我认为它没有像应有的那样频繁使用。

在前面的示例中,我们使用了以下隐式路由模型绑定技术。

use App\Models\User;

Route::get('/implicit-binding/{user}', function (User $user) {
return $user;
});
use App\Models\User;

Route::get('/implicit-binding/{user}', function (User $user) {
if ($user->email_verified_at != null) {
return $user;
}

abort(404);
});

显式路由模型绑定

use App\Models\User;

Route::get('/explicit-binding/{verifiedUser}', function (User $user) {
return $user;
});
Route::bind('verifiedUser', function($value) {
return User::where('id', $value)
->where('email_verified_at', '!=', null)
->firstOrFail();
});

 Laravel — P52:显式路由模型绑定_User

<?php

namespace App\Providers;

use App\Models\User;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider
{
/**
* The path to the "home" route for your application.
*
* Typically, users are redirected here after authentication.
*
* @var string
*/
public const HOME = '/home';

/**
* Define your route model bindings, pattern filters, and other route configuration.
*
* @return void
*/
public function boot()
{
$this->configureRateLimiting();

$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));

Route::middleware('web')
->group(base_path('routes/web.php'));
});

Route::bind('verifiedUser', function($value) {
return User::where('id', $value)
->where('email_verified_at', '!=', null)
->firstOrFail();
});
}

// ...
}

标签:Laravel,function,use,Route,verifiedUser,user,显式,P52,User
From: https://blog.51cto.com/u_1213352/6052060

相关文章

  • Laravel — P51:路由模型隐式绑定
    现在我们已经熟悉了依赖注入,我们还能用这个概念做什么呢?我们能否像模型一样将我们的模型“注入”​​User​​​到我们的路由中,然后在不实例化​​User​​模型的情况下利用......
  • Laravel — P50:路由和依赖注入
    我们在前几篇文章中介绍了一些依赖注入主题,但现在我们想开始更具体一些。我们终于进入了Laravel的更高级部分,并将开始关注Laravel特定领域内的特定主题。接下来的几篇文......
  • Laravel — P49:依赖注入
    我希望上一篇文章有意义。依赖注入确实是一个简单的概念。我觉得在你说你知道“Laravel中的依赖注入”之前,你应该完整地理解它。在我们再次进入依赖注入之前,你应该了解Lar......
  • Laravel — P48:依赖注入概念(高级 PHP 概念)
    在你的Laravel职业生涯中,你会多次听到“依赖注入”这个词,所以你不妨熟悉一下它。在我们进入Laravel之前,让我们看看依赖注入作为PHP(或任何编程语言)中的一个概念。我们应......
  • Laravel — P55:路由中的软删除模型
    完成这样的教程系列并不像看起来那么简单。您想按特定顺序涵盖主题,但每次谈到一个新主题时,您都会意识到您需要涵盖其他内容才能做到这一点。例如,在学习了Laravel中一些比......
  • laravel groupby 报错
    报错信息laravelwhichisnotfunctionallydependentoncolumnsinGROUPBYclause;thisisincompatiblewithsql_mode=only_full_group_by关闭严格模式:修改app......
  • 【题解】P5278 算术天才⑨与等差数列
    有趣的乱搞做法和一个没想到的trick,一起记一下。思路线段树+哈希/trick.首先是乱搞做法。意识到可以像P3792由乃与大母神原型和偶像崇拜那个被疯狂hack的题......
  • laravel data_get 函数从多维数组中获取值
    当需要从多维数组中获取值,并且进行判空,赋值默认值的时候,可以使用下面的测试用例。$arr=["name"=>"陶士涵","title"=>["sub"=>"测试"],"test"=>null......
  • Laravel配置全局公共函数的方法步骤
    app目录下创建一个名为helpers.php的文件(app/helpers.php)并编辑其内容如下app\helpers.php<?php//全局函数/***三个一组相加*/if(!function_exists('sgsyz')){f......
  • Laravel的ORM模型的find(),findOrFail(),first(),firstOrFail(),get(),list(),toArray()之间
    阅读目录​​get()后连缀方式添加getList方法​​​​get_object_vars—返回由对象属性组成的关联数组​​​​get()方法后添加getList()方法​​find($id)需要一个......