【问题标题】:500 Internet Server Error after Form submitting提交表单后出现 500 Internet 服务器错误
【发布时间】:2017-03-27 09:41:25
【问题描述】:

我从头开始学习 laracast 教程 laravel 5.4。现在我在第 12 次会议中,并且遇到了我的第一个错误。我在提交空表单后收到 500 Internet 服务器错误。我尝试了很多,但我无法修复它。

以下是相关代码:

web.php

Route::get('/', 'PostsController@index');
Route::get('/posts/create', 'PostsController@create');
Route::post('/posts', 'PostsController@store');

PostController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;
class PostsController extends Controller
{
    public function index()      
    {
      return view('posts.index');
    }

     public function show()
    {
        return view('posts.show');
    }
    public function create()
    {
        return view('posts.create');
    }
        public function store()
    {
            $this->validate(request, [
                'title' => 'required',
                'body'=> 'required'
            ]);
            Post::create(request(['title', 'body']));
            return redirect('/');          

    }

}

create.blate.php

@extends('layouts.master')


@section ('content')

<h1>Publish a Post</h1>
<hr>
<form method="POST" action="/posts">
    {{ csrf_field() }}
    <div class="form-group">
    <label for="title">Title</label>
    <input type="text" class="form-control" id="title" name="title">
  </div>
  <div class="form-group">
    <label for="body">Body</label>
    <textarea type="text" class="form-control" id="body" name="body" ></textarea>
  </div>
  <button type="submit" class="btn btn-primary">Publish</button>
</form>

@endsection

Post.php

<?php

namespace App;


class Post extends Model
{

}

模型.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model as Eloquent;

class Model extends Eloquent
{
    protected $guarded = [];
}

希望有人能帮助我,laravel不要给我报错。

最好的问候

【问题讨论】:

  • 你的主要问题是 laravel 没有给你一个错误。你应该先修改它。
  • 我对 larvel 一无所知,但假设它是基于网络的。因此,您需要在 Web 服务器错误日志文件中查找问题。
  • 检查你的日志,显示它。
  • 您的 http 服务器写入错误日志文件。找到它并往里看。如果您在处理网络内容时遇到问题,这始终是第一步
  • 如果您的 .env 文件中有 Debug=true ,Laravel 确实会为您提供完整的错误堆栈跟踪。能够 。你发布错误?

标签: php forms laravel laravel-5


【解决方案1】:

如果 laravel 没有给你错误。你可以在你的代码中设置 php 内部错误提示,看看发生了什么。

error_reporting (E_ALL & ~E_NOTICE);

【讨论】:

  • 这在 laravel 中不是必需的。您在 .env 文件中设置错误报告
  • 好吧,原理一样。
【解决方案2】:

我找到了错误并修复它...

PostController.php

替换:

$this->validate(request, [ 'title' => 'required', 'body'=> 'required' ]);

与:

$this->validate(request(), [ 'title' => 'required', 'body'=> 'required' ]);

【讨论】:

  • 尝试创建一个验证文件。使代码更简洁,更容易更改验证。 laravel.com/docs/5.4/validation 还有 $this->validate(request, [ 'title' => 'required', 'body'=> 'required' ]);应该可以工作:public function store(Request $request)
猜你喜欢
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 2022-11-22
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多