![](/img/trans.png)
[英]Laravel: How to set $id to Auth::user()->id; in resource controller methods
[英]How to pass Auth::id() to the controller in laravel?
我有一个支付控制器,但是当我对经过身份验证的user
执行dd
user
,它返回null
。
namespace App\Http\Controllers\Api;
use App\Casefile;
use App\Http\Controllers\Controller;
use App\Payment;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
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;
是的,您可以获得这样的身份验证值:
$idAuthenticated = Auth::user()->id;
$username = Auth::user()->name;
$email = Auth::user()->email;
要么
$user = findOrFail(Auth::user()->id);
这看起来像一个 API 请求,如果你的默认 auth 守卫的配置不是API
,你必须分配这样的守卫: auth('api')->user()->id;
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.