Храните данные формы в MySQL как JSON в Laravel - PullRequest
0 голосов
/ 11 мая 2018

Я новичок в laravel, и я хочу знать, как сохранить свои данные формы в формате JSON в базе данных mysql.

По сути, я хочу знать полный поток от шаблона Blade до базы данных для хранения JSON.

Образец формы:

<div class="container">
  <form action="action_page.php">

    <label for="fname">First Name</label>
    <input type="text" id="fname" name="firstname" placeholder="First Name">

    <label for="lname">Last Name</label>
    <input type="text" id="lname" name="lastname" placeholder="Last Name">

    <label for="subject">Subject</label>
    <textarea id="subject" name="subject" placeholder="Subject" style="height:300px"></textarea>

    <input type="submit" value="Submit">

  </form>
</div>

Пример JSON, который я хочу сохранить в базе данных

{ "firstname":"John", "lastname":"Immanuel",  "subject":"This is a test msg" }

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Вы должны сделать контроллер и добавить код в ваш маршрутизатор для инициализации маршрута

Контроллер:

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
public function store(Request $request)
{
     $variable = DB::table('table_name')->insert([
            ['firstname' => $request->firstname, 'lastname' => $request->lastname, 'subject' => $request->subject]
     ]);
     return $variable;
}

Маршрутизатор: (добавьте код в web.php)

Route::post('/add', 'YourController@store');

Вид:

<div class="container">
<form action="/add" method="POST">
{{ csrf_field() }}
    <label for="fname">First Name</label>
    <input type="text" id="fname" name="firstname" placeholder="First Name">

    <label for="lname">Last Name</label>
    <input type="text" id="lname" name="lastname" placeholder="Last Name">

    <label for="subject">Subject</label>
    <textarea id="subject" name="subject" placeholder="Subject" style="height:300px"></textarea>

    <input type="submit" value="Submit">

  </form>
</div>
0 голосов
/ 11 мая 2018

В вашем методе controller используйте следующий код:

use Illuminate\Http\Request;

public function store(){
     //Get the request data
     $input = Request::all(); 

     //Store into your table using Laravel model you've created
     $record = Model::create(["your_field_name" => json_encode($input)]); 

     return $record; 
}

Пожалуйста, убедитесь, что поле datatype, в котором вы хотите сохранить json, должно быть varchar или text,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...