Как сохранить значение выбора в переменной в laravel - PullRequest
0 голосов
/ 27 августа 2018

Привет, я новичок в Laravel.Я не знаю, как сохранить значение выбора в переменной.Вот как я делаю это в php.Но как в Laravel?Спасибо за помощь:)

<?php
session_start();

//Database
$servername = "127.0.0.1";
$username = "root";
$password = "root";

//Connection to Database
$conn = new mysqli($servername, $username, $password);

//Connection Test
if(!$conn) {
echo "Not connected to Server"
}
if(!mysqli_select_db($conn, 'test')){
echo "No connection to Database";
}

//store data in variable
$vorname = $_POST['name'];
$name = $_POST['age'];
?>

<!--Form Select-->
<form action="test.php" method="post">
<select name="name">
    <option value="Lisa"></option>
    <option value="Laura"></option>
</select>
<select name="age">
    <option value="20">20</option>
    <option value="21">21</option>
</select>
<button type="submit">Sent</button>
</form>

<?php
$query = "SELECT * FROM test WHERE name = $name AND age = $age";
$profile = $conn->query($query);
?>

Я хочу форму с выбором, и выбранная опция должна быть сохранена в переменной.Затем проверил в базе данных.А потом покажи результаты.Я не знаю, как это сделать в Laravel.спасибо:)

1 Ответ

0 голосов
/ 27 августа 2018

Хорошо, начнем.Я предлагаю вам изучить документацию laravel, чтобы вам стало понятнее.

Прежде всего вам необходимо создать маршруты в файле web.php.

Route::get('/test', 'testController@index')->name('test.index');
Route::post('/values', 'testController@getValues')->name('test.values');

Первый вернетсяПо вашему мнению, второй, чтобы вставить данные.Держитесь там, я объясню все в следующих строках.

Теперь вам нужен контроллер для обработки данных и, конечно, представление для предварительного просмотра выпадающих списков.

Для того, чтобы сделать контроллерможет просто использовать команду php artisan make:controller testController.

Это создаст контроллер с именем testController , как мы назвали его в наших маршрутах.

   <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;

class testController extends Controller
{

    public function index()
    {
        return view('test');
    }
}

Вот как ваш контроллер будетпосмотри на этот шаг.Просто верните свой шаблон представления (который я назвал тестом, например, цели).Теперь вам действительно нужно создать это представление, которое вы пытаетесь вернуть.Поэтому внутри файла представлений вы создаете файл test.blade.php и публикуете свой HTML-код с некоторыми изменениями.

<form action="{{ action('testController@getValues') }}" method="post" id="postData">
    {{ csrf_field() }}
<select name="name">
    <option value="Lisa">Lisa</option>
    <option value="Laura">Laura</option>
</select>
<select name="age">
    <option value="20">20</option>
    <option value="21">21</option>
</select>
<button type="submit">Sent</button>
</form>

Вы заметите, что действие формы указывает прямок функции контроллера, которая будет создана на следующем шаге.Он используется для вставки данных в базу данных.

Поле csrf_ создает токен.На данный момент вы поймете, что это помогает вашей сессии не "тайм-аут", но делает намного больше, чем этоПодробнее об этом здесь !!!

Простой способ получить доступ к вашей форме, поэтому маршрутизация laravel делает вещи такими простыми.Идите как "localhost / my_project_folder / test", и вы сможете увидеть свое представление.

Все в порядке, двигаясь вперед.Теперь вам нужно отправить данные из представления в контроллер, чтобы вы сохранили их в БД.

Нам нужна новая функция в контроллере с именем getValues, как мы назвали ее в файле web.php в начале.,Теперь ваш контроллер должен выглядеть следующим образом:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;

class testController extends Controller
{

    public function index()
    {
        return view('test');
    }

    public function getValues(Request $request){
        $name=$request->get('name');
        $age=$request->get('age');

        $insertData=DB::table('data')->insert(
            ['name' => $name, 'age' => $age]
        );

    }
}

Метод запроса действительно полезен в laravel, поэтому изучите еще немного об этом методе здесь !!!

Теперь последнийчасть.Подключите свою базу данных.Все соединения происходят в файле .env.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testingdata
DB_USERNAME=root
DB_PASSWORD=root

Это моя личная база данных на моем локальном хосте, поэтому вы можете изменить ее, используя свои учетные данные.После выполнения этого шага вы готовы идти.

Если вы использовали другую базу данных или внесли много изменений и т. Д. И т. Д. И чувствуете, что используете старые настройки, введите команду php artisan config:cache, чтобы настроить кэш с последними изменениями.

ЭтоСамый простой способ для вставки данных из формы в базу данных.Вы можете оптимизировать его и расширить его, поэтому я предлагаю вам начать читать документацию laravel, по возможности получить доступ к laracast и, если у вас есть время, принять участие в форуме laracasts.

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