FormBody в Android для создания MySQL-Row через Laravel.Где подвох? - PullRequest
0 голосов
/ 21 декабря 2018

У меня проблема, я бы очень хотел ее решить.Может быть, у кого-то из вас есть идея?

Я пытаюсь вставить в MySQL-DB с помощью Android и продолжаю через Laravel-Framework для PHP.Я нашел учебник, где html-формуляр сделан для вставки, который отлично работает.Я пытался вызвать функцию, которая обрабатывает запрос напрямую, но я не могу заставить его работать.

ниже я процитировал часть Android.Я вырезал ненужные части, так что не удивляйтесь.

    public void buttonClicked(View view){

    final OkHttpClient client = new OkHttpClient();
    RequestBody body2 = new FormBody.Builder()
            .add("title", "suspense")
            .add("description", "funny")
            .add("content", "mediocre")
            .build();

    final Request request2 = new Request.Builder()
            .url("*mypage*/laravel/public/mysql/test")
            .post(body2)
            .build();

    client.newCall(request2).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            String mMessage = e.getMessage().toString();
            Log.w("failure Response", mMessage);
            //call.cancel();
        }

        @Override
        public void onResponse(Call call, Response response)
                throws IOException {
                  if(response.isSuccessful()) {Log.i("status: ", "success");} 
                  else {Log.i("status: ", "failure");}
                }
    });
  }

В моих файлах Laravel я получил:

web.php:

Route::get('laravel/public/mysql/test', 'PagesMysql@store');
Route::resource('mysql','PagesMysql');

PagesMysql.php:

    public function store(Request $request){
    $re ='No valid request';
    if($request->has(['title', 'description', 'content'])){
        $sql ='INSERT INTO '. $this->table .' (title, description, content) VALUES (:title, :description, :content)';
        $vals =['title'=>$request->title, 'description'=>$request->description, 'content'=>$request->content];

        if(DB::insert($sql, $vals)){
            $idpg = DB::getPdo()->lastInsertId(); //auto-increment id for newly created page
            $re ='Record inserted successfully.<br><a href="laravel/public/page/'. $idpg .'">See the page</a>';
        }
        else $re = 'Unable to insert data in table: '. $this->table;
    }
    return $re;
}

Как я уже сказал, функция хранилища работает правильно,если он вызывается из html-формы внутри php-файлов.Можно ли сделать то же самое через Android?Где я могу ошибиться?

Большое спасибо всем!

...