$this->middleware(function ($request, $next) { $this->userInfo = Auth::user(); //获取当前登录用户信息 $this->userId = $this->userInfo->user_id; // $this->userModel = new UserModel(); //依赖注入model 这样写 return $next($request); });
时间: 2024-04-26 18:21:46 浏览: 10
这段代码是一个 Laravel 中间件,它的作用是在每个请求之前通过 Auth::user() 获取当前登录用户的信息,并将其保存在 $this->userInfo 中。然后通过 $this->userInfo->user_id 获取当前用户的 ID,最后将请求传递给下一个中间件或路由处理程序。
这个中间件还通过依赖注入的方式实例化了一个 UserModel,但是在代码中没有使用到。可能是为了在后续的处理中使用 UserModel 这个模型类。
相关问题
在laravel6框架中利用我创建好的数据库DATA中的表stu_login(表中有,student_id,password,name,age,sex,specality,class_name,bedroom,phione),控制器StudentController(app\Http\Controllers\Auth\front\StudentController.php)路由(Route::get('/student/info', 'Auth\StudentController@info')->middleware('auth');) 在学生信息页面以表的形式输出该登陆学生的数据中讯在的所有信息, 写全
好的,根据您的问题,我可以给您提供如下的代码示例:
在 StudentController.php 中,您可以编写如下的代码:
```
<?php
namespace App\Http\Controllers\Auth\front;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Models\StuLogin; // 假设您的模型类名为 StuLogin
class StudentController extends Controller
{
public function info(Request $request)
{
$user = Auth::user(); // 获取当前登录用户的信息
$student = StuLogin::where('student_id', $user->student_id)->first(); // 获取当前登录学生的信息
return view('student.info')->with('student', $student); // 将学生信息传递给视图
}
}
```
在路由中,您可以添加如下的代码:
```
Route::get('/student/info', 'Auth\front\StudentController@info')->middleware('auth');
```
在视图文件 student/info.blade.php 中,您可以编写如下的代码:
```
@extends('layouts.app')
@section('content')
<div class="container">
<h1>学生信息</h1>
<table class="table">
<tbody>
<tr>
<th>学号</th>
<td>{{ $student->student_id }}</td>
</tr>
<tr>
<th>姓名</th>
<td>{{ $student->name }}</td>
</tr>
<tr>
<th>年龄</th>
<td>{{ $student->age }}</td>
</tr>
<tr>
<th>性别</th>
<td>{{ $student->sex }}</td>
</tr>
<tr>
<th>专业</th>
<td>{{ $student->specality }}</td>
</tr>
<tr>
<th>班级</th>
<td>{{ $student->class_name }}</td>
</tr>
<tr>
<th>宿舍</th>
<td>{{ $student->bedroom }}</td>
</tr>
<tr>
<th>电话</th>
<td>{{ $student->phone }}</td>
</tr>
</tbody>
</table>
</div>
@endsection
```
这样,当用户访问 /student/info 路径时,会显示当前登录学生的信息。如果用户没有登录,则会跳转到登录页面。
MIDDLEWARE_BUILD_MAKEFILES := $(foreach MID, $(MIDDLEWARE_SORTED), $(wildcard $(YT_LMS_MIDDLEWARE)/$(MID)/build.mk))
这是一个 Makefile 中的变量定义语句,其中使用了 Makefile 的函数和变量扩展。
具体解释如下:
- $(MIDDLEWARE_SORTED):表示一个变量,里面存储了所有中间件的名称,已经按照依赖关系排序好了。
- $(YT_LMS_MIDDLEWARE):表示一个变量,存储了中间件代码的根目录。
- $(foreach) 函数:表示遍历 $(MIDDLEWARE_SORTED) 变量中的每一个元素,执行后面的操作。
- $(wildcard) 函数:表示在指定目录中查找符合条件的文件,返回一个文件列表。
- $(YT_LMS_MIDDLEWARE)/$(MID)/build.mk:表示中间件的 build.mk 文件所在的路径,$(MID) 表示当前遍历到的中间件名称。
因此,这条语句的作用是:在中间件根目录下,找到所有中间件的 build.mk 文件,并将它们的路径存储在 MIDDLEWARE_BUILD_MAKEFILES 变量中。