如何将Auth::id()传递到laravel中的控制器



我有一个支付控制器,但当我对经过身份验证的user执行dd时,它会返回null

namespace AppHttpControllersApi;
use AppCasefile;
use AppHttpControllersController;
use AppPayment;
use CarbonCarbon;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesDB;
class PaymentController extends Controller
{
public function apiPaymentByUserId(Request $request) {
$date_from = $request->$date_from;
$date_to = $request->$date_to;
$idAuthenticated = Auth::id();
DB::connection()->enableQueryLog();
$payments = DB::table("payments")
->join('casefiles', 'casefiles.id','=', 'payments.casefile_id')
->join('users', 'users.id', '=', 'casefiles.user_id')
->select("payments.*")
->where("payments.created_at", ">=", $date_from)
->where("payments.created_at", "<=", $date_to)
->where("casefiles.user_id", "=", $idAuthenticated)
->get();
// @dd(DB::getQueryLog());
@dd($idAuthenticated);

return response()->json([ 
'success' => true, 
'response' => $payments 
]);
}
}

我需要最后一个where子句中的auth id,但它返回null

我错过了什么?我应该复制并粘贴更多的代码以使其更清晰吗?我获取参数的路由的操作是POST

你可以得到这样的id

$idAuthenticated = Auth::user()->id;

这看起来像是一个API请求,如果您默认的auth-guard的配置不是API,那么您必须像auth('api')->user()->id;那样分配该保护。

是的,您可以获得如下的auth值:

$idAuthenticated = Auth::user()->id;
$username = Auth::user()->name;
$email = Auth::user()->email;

$user = findOrFail(Auth::user()->id);

最新更新