学生/创建路线显示空白页面,不显示插入表格

时间:2019-08-22 09:36:05

标签: laravel laravel-5.8

q)我想在la-ravel中插入一个表格,我的版本是P hp 7和la ravel 5.8。我编写了所有代码,然后运行,但未显示任何形式或任何内容,它显示了空白页,并且还创建了迁移数据库和表,但是由于表格未显示在URL中,所以我无法插入。 }}     你能帮我吗?

1)我尝试了HTTP://localhost:8000/student/create     但这不起作用

这是视图文件,HTTP://localhost:8000/student/create

resources/views/student/create.blade.php

2)这是控制者

@extends('master')
@section('content')
<div class="row">
    <div class="col-md-12">
        <br />
        <h3 align="center">add data</h3>
        <br />

        @if(count($errors) > 0)
        <div class="alert alert-danger">
            <ul>

                @foreach($errors->all() as $error)
                    <li>{{$error}}</li>
                    @endforeach
            </ul>
        </div>
        @endif
        @if(\Session::has('success'))
        <div class="alert alert-success">
            <p>{{ \Session::get('success')}}</p>
        </div>
        @endif

        <form method="post" action="{{url('student')}}">
            {{csrf_field()}}
            <div class="form-group">
                <input type="text" name="first_name" class="form-control"
                 placeholder="enter the first name" />
            </div>

            <div class="form-group">
                <input type="text" name="last_name" class="form-control"
                 placeholder="enter the last name" />
            </div>

             <div class="form-group">
                <input type="submit" class="btn btn-primary" />
            </div>

        </form>
    </div>
</div>

@endsection

3)这是路由/web.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\student;
use Session;

class StudentController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('student.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
            'first_name' => 'required',
            'last_name' =>  'required'
            ]);
        $student=new student([
            'first_name' => $request->get('first_name'),
            'last_name'  => $request->get('last_name')
            ]);
        $student->save();
        return redirect()->route('student.create')->with('success','data added');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

4 个答案:

答案 0 :(得分:1)

更改此行:

Route::resource('student/create','StudentController');

对此:

Route::resource('students','StudentController');

并访问此地址:

localhost:8000/students/create

请参阅Laravel文档here

您的master.blade.php中还有一个错字,它必须是@yield('content')(注意ie的位置)。

然后在您的视图中更改表单标签,如下所示:

<form method="post" action="{{route('students.store')}}">

答案 1 :(得分:0)

问题出在您的资源路线上。它具有索引,创建,存储,显示,编辑,更新和删除路线。当您使用127.0.0.1:8000/student/create时,它将转到您控制器的索引方法中,并且由于您的索引方法中没有任何内容,因此您将得到一个空白页。因此,像

一样更改您的路线
Route::resource('student','StudentController');

现在您可以访问页面

127.0.0.1:8000/student/create

并将表单操作更改为

<form method="post" action="{{route('student.store')}}">

答案 2 :(得分:0)

请添加此         

并且还请编辑您的路线/web.php
     路线:: resource('student','StudentController');

有关更多详细信息,请访问此链接        Laravel - Route::resource vs Route::controller

答案 3 :(得分:0)

您将学生路线资源定义为错误。您目前具有这样的功能:

Route::resource('student/create','StudentController');

因此,当您检查php artisan route:list时,将得到以下输出:

| GET|HEAD  | student/create/create        | create.create    | App\Http\Controllers\StudentController@create    

如您所见,您已经在路径名称中创建了两次,并且试图找到student/create

将您的路线资源更改为此:

Route::resource('students','StudentController');

现在,当您转到php artisan route:list时,您的路线将如下所示:

| GET|HEAD  | student/create         | student.create   | App\Http\Controllers\StudentController@create  

现在,您可以通过转到student/create来显示该表格来调用该路由。