@Karpkarp

Как правильно пользоваться insert в laravel?

Есть простая форма
<div class="form-group">
    <label for="examplelogin1">Login</label>
    <input type="login" class="form-control" id="login" placeholder="login">
  </div>

  <div class="form-group">
    <label for="exampleInputEmail1">Email</label>
    <input type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="Enter email">
  </div>

  <div class="form-group">
    <label for="exampleInputPassword1">Password</label>
    <input type="password" class="form-control" id="password" placeholder="Password">
  </div>

  <button type="submit" class="btn btn-primary">Submit</button>

</form>


И код, который вставляет записи в БД:
class TestController extends Controller
{
    public function index() 
    {
    	$id = DB::table('users')->insert(array(
		    array('login' => 'karp', 'email' => 'dayle@example.com','password' => 'q1w2e3r4' )
		));
    }
}


Как связать форму с этим кодом? Что бы данные которые набирались в форму, улетали в БД.
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 2
Kulaxyz
@Kulaxyz
Могу лучше
Я бы eloquent предложил использовать, тогда код будет выглядеть следующим образом
public function index(Request $request) 
{
  $data = $request->except('_token');
  User::create($data);
}

Или же можно отдельно данные доставать:
$email = $request->post('email');
А вообще читайте документацию, вместо того, чтобы азы на тостере спрашивать
Ответ написан
В форме прописываешь в атрибуте action роут, куда ты будешь слать данные формы, а в атрибуте method указываешь post. В файле /routes/web.php указываешь, что post запрос на роут, что указал в форме будет обрабатывать метод index контроллера TestController.

Route::post('/bla-bla-bla', 'TestController@index')->name('myForm');


Далее в методе обязательно валидируешь данные, полученные из формы. Для этого лучше использовать form request validation, чтобы не загромождать контроллер логикой валидации, а вынести ее в отдельный файл.

Для добавления записей таблицу базы данных используй Eloquent, а QueryBuilder используй только в сложных запросах, где не хватает возможностей Eloquent.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы