首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在控制器函数中获取user_id?

如何在控制器函数中获取user_id?
EN

Stack Overflow用户
提问于 2021-08-09 07:04:31
回答 1查看 71关注 0票数 0

我正在开发一个Apiato框架中的一些crud api的,它也连接到我的数据库,现在我想开发一个api,用于发布详细信息到我的数据库(有效用户只能发布该数据)为此,我想获得一个上传函数内的用户id我没有获得该用户id如何获得该id请帮助我解决这个问题。

error i am getting when i try to send request in postman

代码语言:javascript
复制
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user_id' cannot be null (SQL: insert into `blogs_table` (`name`, `price`, `image`, `rating`, `country`, `description`, `user_id`, `updated_at`, `created_at`) values (maldives, 9400, ssssssssssss, 5, india, wwwwwwwwww, ?, 2021-08-09 12:22:58, 2021-08-09 12:22:58)) in file /home/vagrant/code/apiato/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 692

BlogModel.php

代码语言:javascript
复制
<?php

namespace App\Containers\UserRegistration\UserContainer\Models;

use App\Ship\Parents\Models\Model;

class BlogModel extends Model
{
    protected $table='blogs_table';
    protected $fillable = [
        'name','price','image','country','rating','description','user_id'
    ];

    protected $attributes = [

    ];

    protected $hidden = [

    ];

    protected $casts = [

    ];

    protected $dates = [
        'created_at',
        'updated_at',
    ];

    /**
     * A resource key to be used in the serialized responses.
     */
    protected string $resourceKey = 'BlogModel';
    public function user(){
         return $this->belongsTo(UserContainer::class);
        //return $this->belongsTo('C:\apiato-project\apiato\app\Containers\UserRegistration\UserContainer\Models\UserContainer.php','user_id');
    }
}

UserContainer.php

代码语言:javascript
复制
<?php

namespace App\Containers\UserRegistration\UserContainer\Models;
use Tymon\JWTAuth\Contracts\JWTSubject;
use App\Ship\Parents\Models\Model;

class UserContainer extends Model implements JWTSubject
{
    protected $fillable = [
        'fullName',
        'email',
        'password',
        'mobile'
    ];

    protected $attributes = [

    ];

    protected $hidden = [

    ];

    protected $casts = [

    ];

    protected $dates = [
        'created_at',
        'updated_at',
    ];

    /**
     * A resource key to be used in the serialized responses.
     */
    protected string $resourceKey = 'UserContainer';
    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    public function getJWTCustomClaims()
    {
        return [];
    }
    public function blogs(){
         return $this->hasMany(BlogModel::class, 'user_id');
       // return $this->hasMany('C:\apiato-project\apiato\app\Containers\UserRegistration\UserContainer\Models\BlogModel','user_id');
    }
}

BlogController.php

代码语言:javascript
复制
<?php

namespace App\Containers\UserRegistration\UserContainer\UI\API\Controllers;

use App\Containers\UserRegistration\UserContainer\UI\API\Requests\CreateUserContainerRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\DeleteUserContainerRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\GetAllUserContainersRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\FindUserContainerByIdRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Requests\UpdateUserContainerRequest;
use App\Containers\UserRegistration\UserContainer\UI\API\Transformers\UserContainerTransformer;
use App\Containers\UserRegistration\UserContainer\Actions\CreateUserContainerAction;
use App\Containers\UserRegistration\UserContainer\Actions\FindUserContainerByIdAction;
use App\Containers\UserRegistration\UserContainer\Actions\GetAllUserContainersAction;
use App\Containers\UserRegistration\UserContainer\Actions\UpdateUserContainerAction;
use App\Containers\UserRegistration\UserContainer\Actions\DeleteUserContainerAction;
use App\Ship\Parents\Controllers\ApiController;
use Illuminate\Http\JsonResponse;

use Illuminate\Http\Request;

use App\Containers\UserRegistration\UserContainer\Models\BlogModel;

class BlogController extends ApiController
{
    
    public function upload(Request $request ){
        //dd($request->all());
        $blog = new BlogModel();
        $blog->name=$request->input('name');
        $blog->price=$request->input('price');
        $blog->image=$request->input('image');
        $blog->rating=$request->input('rating');
        $blog->country=$request->input('country');
        $blog->description=$request->input('description');
        $blog->user_id = auth()->id();    
        $blog->save();
        return response()->json(['success'=>'successfully added','blogs'=>$blog]);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-09 07:27:07

在控制器中使用Auth

代码语言:javascript
复制
use Illuminate\Support\Facades\Auth

试一试

代码语言:javascript
复制
$blog->user_id = auth()->user()->id;  

代码语言:javascript
复制
$blog->user_id = Auth::id();
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68708041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档