Вставка данных в базу данных laravel
В данный момент я работаю с Ларавелем. Я пытаюсь вставить данные в базу данных. Это не данные пользователя, а данные продукта. Покупатели должны иметь возможность вставить название, описание и цену продукта в базу данных.
Я посмотрел на сайте laravel, однако, я не смог ничего найти. Есть некоторые люди с тем же вопросом, что и у меня на StackOverflow. Однако ответы, которые были даны на них, не работают для меня.
Мой контроллер:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProductsController extends Controller
{
public function insertform(){
return view('home');
}
public function insert(Request $request){
$productname = $request->input('title');
$description = $request->input('description');
$price = $request->input('price');
$data=array('title'=>$productname,"description"=>$description,"price"=>$price);
DB::table('products')->insert($data);
echo "Record inserted successfully.<br/>";
echo '<a href = "/insert">Click Here</a> to go back.';
}
}
Мой взгляд:
@section('content')
<h1>Add your new items here:</h1>
<form method="get">
<div class="title">
<div class="title">
<span class="input-group-text" id="title">Title</span>
</div>
<input type="text" name="title" class="form-control" aria-label="title" aria-describedby="inputGroup-sizing-default">
</div>
<br>
<br>
<div class="description">
<div class="description">
<span class="input-group-text" id="description">Description</span>
</div>
<input type="text" name="description" class="form-control" aria-label="description" aria-describedby="inputGroup-sizing-default">
</div>
<br>
<br>
<div class="price">
<div class="price">
<span class="input-group-text" id="price">Price</span>
</div>
<input type="text" name="price" class="form-control" aria-label="price" aria-describedby="inputGroup-sizing-default">
</div>
<br>
<br>
<div class="form-group">
<label for="exampleFormControlFile1">Insert Image</label>
<input type="file" class="form-control-file" id="exampleFormControlFile1">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
@endsection
Моя паутина.РНР:
<?php
Route::get('/', function () {
return view('welcome');
});
Route::get('insert','ProductsController@insertform');
Route::post('create','ProductsController@insert');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Структура моей базы данных:
Дом и добро пожаловать, вместе с некоторым кодом в интернете.php, был сделан путем аутентификации.
Надеюсь, вы, ребята, сможете мне помочь. Я хочу убедиться, что данные о продукте вставлены в базу данных.






Ответы - Вставка данных в базу данных laravel / Inserting data to database laravel

13.01.2020 05:00:05
В твоей паутине.php, добавьте имена маршрутов
Route::get('insert','ProductsController@insertform')->name('product.create');
Route::post('create','ProductsController@insert')->name('product.store');
На ваш взгляд, способ изменить пост и добавить атрибут Action и CSRF области.
<form action="{{ route('product.store') }}" method="post">
@csrf
в контроллерах
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class ProductsController extends Controller
{
public function insertform(){
return view('home');
}
public function insert(Request $request){
$productname = $request->input('title');
$description = $request->input('description');
$price = $request->input('price');
$data = array(
"title" => $productname,
"description" => $description,
"price" => $price
);
DB::table('products')->insert($data);
echo "Record inserted successfully.<br/>";
echo '<a href = "/insert">Click Here</a> to go back.';
}
}
Альтернативный вариант вы можете напрямую добавить действие без названия маршрута
<form action="/create" method="post">
@csrf



products
(title
, description
, price
) значения (rsgjdyj, yrjdj, ryjjry))




13.01.2020 05:02:55
Не использовать класс БД. Вместо того, чтобы создать модель продукта и использовать функции для создания или обновления данных в таблице.
php artisan make: модель продукта
$product= Product::create([
'name' => $request->name, # declared as fillable on Product model
'description' => $request->description,
...
]);
Преобразования маршрут /вставить в пост и добавить CSRF в поле в вашей форме
@csrf
ОПЕРАЦИОННАЯ
<input type="hidden" name="_token" value="{{csrf_token()}}">
На вашем контроллере проверка ввода в функцию insert.
Также взгляните на них -

13.01.2020 05:38:38
В laravel 5.6 я могу показать вам, как вставить данные и отобразить их на странице индекса
так что прежде всего я могу закодировать свой маршрут здесь мы можем использовать 2 маршрута
первый-это маршрут индексной страницы во-вторых, это магазин, и в контроллере магазина вы можете отображать сохраненные данные.
Route::get('/FAQ_page', 'SettingController@FAQ_page')->name('FAQ_page');
Route::get('/FAQ_page/create', 'SettingController@FAQ_page_create')->name('FAQ_page.create');
Route::post('/FAQ_page/store', 'SettingController@FAQ_pagestore');
Теперь создайте базу данных и подключитесь к вашему модулю это ваш модуль
namespace App;
use Illuminate\Database\Eloquent\Model;
class FAQpage extends Model
{
protected $table = 'p66_FAQ_page';
public $timestamps = false;
protected $primaryKey = 'fid';
}
теперь сделайте ваш контроллер таким
public function FAQ_page()
{
$data = FAQpage::get();
return view('SuperAdmin.settings.FAQ_page', compact('data'));
}
public function FAQ_page_create()
{
return view('SuperAdmin.settings.FAQ_page_create');
}
public function FAQ_pagestore(Request $request)
{
request()->validate([
'FAQ_question'=> 'required',
'FAQ_answer'=> 'required',
'Sort_order'=> 'required|max:4',
'FAQ_departments'=> 'required',
]);
$data = new FAQpage();
$data->FAQ_question = $request->get('FAQ_question');
$data->FAQ_answer = $request->get('FAQ_answer');
$data->Sort_order = $request->get('Sort_order');
$data->FAQ_departments = $request->get('FAQ_departments');
$data->Created_date = Carbon::now();
$data->save();
return redirect('/SuperAdmin/FAQ_page');
}
спасибо