如何在Vue中获取基于Laravel api资源的数据

如何在Vue中获取基于Laravel api资源的数据,laravel,vue.js,Laravel,Vue.js,我正在尝试显示用户项目列表,其中user\u id列与auth->user->id匹配 我的问题是如何定义我的资源路由要使用的功能 密码 控制器 Api路由 Vue组件 问题 我如何告诉我的组件不加载索引函数而是加载 来自用户项目功能的数据? 所以你可以添加一条新路线 Route::get('projects-user', 'Api\ProjectController@userprojects')->name('userprojects'); 在js中 axios.get(Router(

我正在尝试显示用户项目列表,其中user\u id列与auth->user->id匹配

我的问题是如何定义我的资源路由要使用的功能

密码 控制器

Api路由

Vue组件

问题 我如何告诉我的组件不加载索引函数而是加载 来自用户项目功能的数据?
所以你可以添加一条新路线

Route::get('projects-user', 'Api\ProjectController@userprojects')->name('userprojects');
在js中

axios.get(Router('userprojects').url()).then(response => {
    this.userprojects= response.data;
});
也可以在控制器中执行此操作

class ProjectController extends Controller
{
    public function index()
    {
      if(Auth::check()){
        $projects = Project::orderby('id', 'desc')->where('user_id', '=', Auth::user()->id)->get();
      }else{
        $projects = Project::orderby('id', 'desc')->latest()->take(10)->get();
      }

        return response()->json($projects);
    }

}

您可以在资源路由之前创建新路由并使用它:

Route::get('projects/me', 'Api\ProjectController@userprojects', ['except' => ['create', 'edit', 'destroy']]);
Route::resource('projects', 'Api\ProjectController', ['except' => ['create', 'edit', 'destroy']]);
然后在您的组件上:

axios.get('api/projects/me')
.then(function (resp) {
    self.projects = resp.data;
})

是两个不同的东西,兄弟,我需要我的索引加载所有项目,我的其他函数向每个用户显示项目。所以你可以添加一个新的路由::get'projects-user',Api\ProjectController@userprojects'->命名为“用户项目”;在js中。getRouter'userprojects'.url.thenresponse=>{this.userprojects=response.data;};谢谢兄弟,我这样做了,它将识别路由,但是它在Auth::user->id中的id出现错误,所以我尝试了Auth::id,它返回[],然后我尝试了硬编码的id,它成功了,现在我应该如何在api控制器中获得我的Auth user id?它似乎不同于通常的控制器,我们只是通过Auth::user->iduse Auth::user->getKey获取aut用户id。Auth::user->getKey根据模型中$primaryKey属性的值解析表的id列。它返回对null上的成员函数getKey的调用,这意味着您未通过身份验证。
class ProjectController extends Controller
{
    public function index()
    {
      if(Auth::check()){
        $projects = Project::orderby('id', 'desc')->where('user_id', '=', Auth::user()->id)->get();
      }else{
        $projects = Project::orderby('id', 'desc')->latest()->take(10)->get();
      }

        return response()->json($projects);
    }

}
Route::get('projects/me', 'Api\ProjectController@userprojects', ['except' => ['create', 'edit', 'destroy']]);
Route::resource('projects', 'Api\ProjectController', ['except' => ['create', 'edit', 'destroy']]);
axios.get('api/projects/me')
.then(function (resp) {
    self.projects = resp.data;
})