当我save()时,“ App \ Post”返回500错误

时间:2018-09-17 00:48:19

标签: php laravel eloquent

好吧,我遇到了一个非常奇怪的错误,这个非常简单的代码返回了 500错误。

<?php

namespace App\Http\Controllers;

use App\User;
use App\Comment;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Controller;

class CommentController extends Controller
{

   public function NewComment(Request $request) {
     $cText = $request->commentText;

     $comment = new Comment;
     $comment->author_id = Auth::user()->id;
     $comment->current_text = $cText;
     $comment->save();
     return $comment;
    }
[...]
}

当我评论 $ comment-> save(); 时返回:

  author_id: 1
  current_text: "fsdfdfd"

OBS:“ fsdfdfd”是我在页面的 <'textarea'> 中键入的文本。

您可以看到,正常返回对象,但是当我尝试保存时返回错误:

500 (Internal Server Error)
  

评论的迁移文件:

Schema::create('comments', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('author_id')->unsigned();
        $table->foreign('author_id')
                ->references('id')
                ->on('users')
                ->onDelete('cascade');
        $table->text('current_text')->nullable(false);
        $table->enum('edited', ['yes','no'])->default('no');
        $table->string('history', 8000);
        $table->timestamps();
    });
  

Comment.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
    protected $fillable = [
      'author_id',
      'current_text',
      'edited',
      'history'];

    protected $guarded = [
      'updated_at',
      'created_at'];

    function author(){
      return $this->belongsTo('App\User');
    }
}

1 个答案:

答案 0 :(得分:0)

我发现了问题所在!

错误在任何这些脚本之前,在AJAX函数中。 发送数据的对象是这样的:

var objectComment = {
  'commentText': textComment
};

因此,我在我的php文件中得到了一个像这样的json:

{'commentText : Lorem ipsun' : null}

并试图通过此方式获得一些价值... #facepalm

另一个错误的地方是,我忘记了配置CSRF令牌,它干扰了数据发送并帮助我更加疯狂。

希望我可以帮助你们中的一些白日梦造成的错误:)