Хорошо, начнем.Я предлагаю вам изучить документацию 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.