我有一个支付控制器,但当我对经过身份验证的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);