[已解决] 关于控制器内放 model 的问题
想精简laravel的写法,在控制器获取用户信息的普通写法:
public function index(){
$uid = Auth::user()->id;
}
在看范例的时候会有这种将model放到控制器参数中的写法
<?php
namespace App\Http\Controllers\Api;
use App\Http\Requests\Api\UserRequest;
use App\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
//返回用户列表
public function index(){
//3个用户为一页
$users = User::paginate(3);
return $users;
}
//返回单一用户信息
public function show(User $user){
return $user;
}
……
//其他代码段
}
可是我在使用时返回null,请问哪里没有做好?
<?php
namespace App\Http\Controllers\User;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
public function index()
{
$openid = Auth::user()->openid;
$user = User::select('id')->where('openid',$openid)->first();
return view('user.index',compact('user'));
}
public function edit(User $user, Request $request)
{
print_r(Auth::check()); //这里正常返回了1
dd($user->id); //这里返回一个null ,是为什么啊
}
}
参考下路由模型绑定。路由《Laravel 5.8 中文文档》