Запрос в Api Laravel

Я пытаюсь сделать API, показывающие данные из двух таблиц, но я застрял на этом этапе.

Это мой ApiController:

public function postDetaillog(Request $request)
{
    $response  = array();
    $validator = Validator::make(
        $request->all(),            
        [
            'id'=> 'required',
        ]
    );

    if ($validator->fails()) {
        $message = $validator->errors()->all();      

        $result['api_status']  = 0;
        $result['api_message'] = implode(', ',$message);      

        $res = response()->json($result);
        $res->send();
        exit;
    }

    $data = DB::table('log_patrols')
        ->where('id', $request->input('id'))
        ->first();

    $site   = asset("uploads").'/';

    $result = DB::table('log_patrol_details')
        ->select("*",DB::raw("concat('$site',photo1) as photo1"),DB::raw("concat('$site',photo2) as photo2"),DB::raw("concat('$site',photo3) as photo3"))
        ->where('id', $request->input('id'))
        ->first();

    if (count($result) == 0) {
        $response['api_status']  = count($result);
        $response['api_message'] = "No data";
    } else {
        $response['api_status']  = 1;
        $response['api_message'] = "success";
        $response['data']        = $data;
        $response['result']      = $result;
    }
    return response()->json($response);
}

первая таблица
эта таблица
вторая таблица
вторая таблица

Всякий раз, когда я пытаюсь получить результаты, это всегда дает мне 0 = no data

это результат

Не могли бы вы мне помочь?

1 ответ

  1. Если то, что вы получаете, является коллекцией, вы можете использоватьif ($result->count() == 0), чтобы проверить, если он пуст.

    Изменить следующим образом:

    if ($result->count() == 0) {
        $response['api_status']  = 0; // Don't use useless logic 
        $response['api_message'] = "No data";
    } else {
        $response['api_status']  = 1;
        $response['api_message'] = "success";
        $response['data']        = $data;
        $response['result']      = $result;
    }