【问题标题】:Api giving error 404 when passing user_id using params in postman在邮递员中使用参数传递 user_id 时 Api 给出错误 404
【发布时间】:2020-02-05 10:41:02
【问题描述】:

当我在 url 中给出 user_id 时,我的 api 给出 200 ok 响应,但是当我在邮递员中使用 params 传递 user_id 时,它显示 404 object not found。

当我在 URL 中提供 user_id 时,我附上了 api 的响应。请点击以下链接。

Response of api when passing user_id using url

API

public function wsUserActivity($user_id){
    $request = Input::all();
    try {
        $no=isset($request['page_number'])?$request['page_number']:0;
        $nos=isset($request['count'])?$request['count']:10;
        $skp=$no*$nos;
        $array_json_return = array('status' => '1','msg' => 'Success');


        $u_article = array();
        $u_article = DB::table('mst_article as article')
        ->select('id','title', DB::raw('DATE_FORMAT(created_at, "%d %b %Y") as created_at'), DB::raw('DATE_FORMAT(updated_at, "%d %b %Y") as updated_at'), 'imported', 'import_url', 'cover_type', 'profile_image')
        ->selectRaw('SUBSTRING(`description`, 1, 200) as `description`')
        ->where('user_id_fk',$user_id)
        ->get();

        if (count($u_article)>0){
            foreach ($u_article as $key => $value){
                $u_article[$key]->type = 'article';
                if (!empty($value->profile_image)){ 
                $u_article[$key]->profile_image_url = config("feature_image_path").'article_image/thumb/'.$value->profile_image;
                }
                $u_article[$key]->post_url = url('/') . '/view-article' .  '/' . $value->id;
            }
        }
        foreach ($u_article as $object){
            $u_articles[] = (array) $object;
        }

        $u_meetup = array();
        $u_meetup = DB::table('mst_meetup as meetup')
        ->select('id','title', DB::raw('DATE_FORMAT(created_at, "%d %b %Y") as created_at'), DB::raw('DATE_FORMAT(updated_at, "%d %b %Y") as updated_at'), DB::raw('DATE_FORMAT(start_date, "%d %b %Y") as start_date'), 'imported', 'import_url', 'cover_type', 'profile_image', 'location')
        ->selectRaw('SUBSTRING(`description`, 1, 200) as `description`')
        ->where('user_id_fk',$user_id)
        ->get();

        if (count($u_meetup)>0){
            foreach ($u_meetup as $key => $value){
                $u_meetup[$key]->type = 'meetup';
                if (!empty($value->profile_image)){
                $u_meetup[$key]->profile_image_url = config("feature_image_path").'meetup_image/thumb/'.$value->profile_image;
                }
                $u_meetup[$key]->post_url = url('/') . '/view-meetup' .  '/'  . $value->id;
            }
        }
        foreach ($u_meetup as $object){
            $u_meetups[] = (array) $object;
        }

        $u_question = array();
        $u_question = DB::table('mst_question as question')
        ->select('id','title', DB::raw('DATE_FORMAT(created_at, "%d %b %Y") as created_at'), DB::raw('DATE_FORMAT(updated_at, "%d %b %Y") as updated_at'), 'imported', 'import_url', 'cover_type', 'profile_image')
        ->selectRaw('SUBSTRING(`description`, 1, 200) as `description`')
        ->where('user_id_fk',$user_id)
        ->get();

        if (count($u_question)>0){
            foreach ($u_question as $key => $value){
                $u_question[$key]->type = 'question';
                if (!empty($value->profile_image)){
                $u_question[$key]->profile_image_url = config("feature_pic_url").'question_image/thumb/'.$value->profile_image;
                }
                $u_question[$key]->post_url = url('/') . '/view-question' .  '/'  . $value->id;
            }
        }
        foreach ($u_question as $object){
            $u_questions[] = (array) $object;
        }

        $u_job = array();
        $u_job = DB::table('mst_job as job')
        ->select('id','title', DB::raw('DATE_FORMAT(created_at, "%d %b %Y") as created_at'), DB::raw('DATE_FORMAT(updated_at, "%d %b %Y") as updated_at'), 'imported', 'import_url', 'cover_type', 'profile_image', 'job_location', 'cmp_name')
        ->selectRaw('SUBSTRING(`description`, 1, 200) as `description`')
        ->where('user_id_fk',$user_id)
        ->get();

        if (count($u_job)>0){
            foreach ($u_job as $key => $value){
                $u_job[$key]->type = 'job';
                if (!empty($value->profile_image)){
                $u_job[$key]->profile_image_url = config("feature_pic_url").'job_image/thumb/'.$value->profile_image;
                }
                $u_job[$key]->post_url = url('/') . '/view-job' .  '/'  . $value->id;
            }
        }
        foreach ($u_job as $object){
            $u_jobs[] = (array) $object;
        }

        $u_education = array();
        $u_education = DB::table('mst_education as education')
        ->select('id','title', DB::raw('DATE_FORMAT(created_at, "%d %b %Y") as created_at'), DB::raw('DATE_FORMAT(updated_at, "%d %b %Y") as updated_at'), 'imported', 'import_url', 'cover_type', 'profile_image')
        ->selectRaw('SUBSTRING(`description`, 1, 200) as `description`')
        ->where('user_id_fk',$user_id)
        ->get();

        if (count($u_education)>0){
            foreach ($u_education as $key => $value){
                $u_education[$key]->type = 'education';
                if (!empty($value->profile_image)){
                $u_education[$key]->profile_image_url = config("feature_pic_url").'education_image/thumb/'.$value->profile_image;
                }
                $u_education[$key]->post_url = url('/') . '/view-education' .  '/' . $value->id;
            }
        }
        foreach ($u_education as $object){
            $u_educations[] = (array) $object;
        }

        $u_event = array();
        $u_event= DB::table('mst_event as event')
        ->select('id','title', DB::raw('DATE_FORMAT(created_at, "%d %b %Y") as created_at'), DB::raw('DATE_FORMAT(updated_at, "%d %b %Y") as updated_at'), DB::raw('DATE_FORMAT(start_date, "%d %b %Y") as start_date'), 'imported', 'import_url', 'cover_type', 'profile_image', 'location')
        ->selectRaw('SUBSTRING(`description`, 1, 200) as `description`')
        ->where('user_id_fk',$user_id)
        ->get();

        if (count($u_event)>0){
            foreach ($u_event as $key => $value){
                $u_event[$key]->type = 'event';
                if (!empty($value->profile_image)){
                $u_event[$key]->profile_image_url = config("feature_pic_url").'event_image/thumb/'.$value->profile_image;
                }
                $u_event[$key]->post_url = url('/') . '/view-event' .  '/' . $value->id;
            }
        }
        foreach ($u_event as $object){
            $u_events[] = (array) $object;
        }

        $u_activity = array();
        $u_activity = array_merge($u_articles, $u_meetups, $u_questions, $u_jobs, $u_educations, $u_events);


        $array_json_return['u_activity'] = $u_activity;


    } catch (\Exception $e) {
        $array_json_return = $this->api_default_fail_response(__function__, $e);
    }

    echo json_encode($array_json_return);
}

路线

Route::get('ws-user-activity/{user_id}', 'WebServices@wsUserActivity');

【问题讨论】:

    标签: php laravel api


    【解决方案1】:

    如果你在 url 中传递 user_id,你可以将路由定义为

    Route::get('ws-user-activity/{user_id}', 'WebServices@wsUserActivity');
    

    然后将路由参数注入到控制器中,

    public function wsUserActivity($user_id){}
    

    传递 user_id 的另一种方式是作为参数,在这种情况下,您可以将路由定义为,

    Route::get('ws-user-activity', 'WebServices@wsUserActivity');
    

    您可以从请求对象访问 user_id

        public function wsUserActivity(Request $request) {
             $user_id = $request->user_id;
        }
    

    【讨论】:

      【解决方案2】:

      您的路由需要在 url 中添加一个参数(user_id),当您发送 user_id 作为参数时,url 实际上会从以下位置更改:

      ws-user-activity/1234
      

      类似于:

      ws-user-activity
      

      所以没有user_id。如果要将user_id 作为(例如)POST 请求参数发送,则必须将route 更改为后者。

      【讨论】:

        【解决方案3】:

        您的路由需要 user_id 作为 URL 段,而不是作为参数。

        参数如下:

        ws-user-activity?user_id=1234
        

        您的 API 需要这样的 URL 段:

        ws-user-activity/1234
        

        【讨论】:

          猜你喜欢
          • 2019-08-05
          • 2021-09-14
          • 1970-01-01
          • 2017-03-08
          • 1970-01-01
          • 2020-07-13
          • 1970-01-01
          • 2016-04-03
          • 2019-06-01
          相关资源
          最近更新 更多