当我尝试从laravel中的表单中保存数据时总是会出现此错误:
但是错误显示当我通过apache访问laravel时,当我通过命令php artisan serve --host 0.0.0.0
运行laravel服务器时,它工作正常...
这是我的表单视图:
<form class="" method="POST" action="{{ $card->path() }}/notes">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<textarea name="body" class="form-control" rows="8" cols="40"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary" name="button">Dodaj</button>
</div>
</form>
这是我的控制者:
<?php
namespace App\Http\Controllers;
use App\Card;
use App\Note;
use Illuminate\Http\Request;
use App\Http\Requests;
class NotesController extends Controller
{
public function store(Request $request, Card $card)
{
$card->notes()->save(
new Note(['body' => $request->body])
);
return back();
}
}
这是我的功能,它会在成功发送表单到数据库后重定向用户:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Card extends Model
{
//
public function notes()
{
return $this->hasMany(Note::class);
}
public function path()
{
return '/cards/' . $this->id;
}
}
答案 0 :(得分:0)
在表单标记{{ csrf_field() }}
答案 1 :(得分:0)
在标题
中添加此行<meta name="csrf-token" content="{{ csrf_token() }}" />
答案 2 :(得分:0)
首先按
清除视图php artisan view:clear
然后将您的观点写为
<form class="" method="POST" action="{{ $card->path() }}/notes">
{!! csrf_field() !!}
<div class="form-group">
<textarea name="body" class="form-control" rows="8" cols="40"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary" name="button">Dodaj</button>
</div>
</form>
这可能会解决您的问题
答案 3 :(得分:0)
在Laravel中,最佳做法是使用Blade
表单。它将自己创建令牌。
{!! Form::open(['action'=>$card->path().'/notes','method'=>'post']) !!}
// fields and buttons
{!! Form::close() !!}
答案 4 :(得分:0)
我遇到了同样的问题,并通过清除视图缓存修复了它:php artisan view:clear
然后将存储文件夹更改为777 而不是775 。