在[App\Models\Task]上添加[title]到fillable属性,以允许批量赋值。
在[App\Models\Task]上添加[title]到fillable属性,以允许批量赋值。
我无法解决这个问题,我尝试了Stack Overflow上的方法,但都不起作用。
有人可以帮我吗?
TaskController
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Task; class TaskController extends Controller { public function index() { return view('tasks.index'); } public function store(Request $request) { $request->validate([ 'title' => 'required' ]); Task::create([ 'title' => $request->title ]); session()->flush('msg', '任务已创建'); return redirect('/'); } }
Model
namespace App; use Illuminate\Database\Eloquent\Model; class Task extends Model { protected $fillable = ['title']; public $timestamps = false; }
在这个问题中,报错显示您需要将`title`添加到您的模型属性`$fillable`中... 阅读文档的这部分内容...
protected $fillable = ['title'];
比我快 🙂 这个文档更有用:laravel.com/docs/8.x/eloquent#mass-assignment
是的,就像这样`protected $fillable = ['title'];`,我也尝试过`guarded`但没有起作用
请向我们展示您的`TaskController.php`和模型代码。
我编辑了问题,抱歉,这是我第一次使用stackoverflow
很奇怪,应该可以工作的,你的代码看起来都正常,我觉得这不会解决任何问题,但是尝试在终端上运行`composer dump-autoload`
它给了我这个错误-类位于`./app/Providers/Task.php`的`App\Task`不符合PSR-4自动加载标准。跳过。你知道这是什么意思吗?
是的,你的问题是你将文件放在了`app/Providers`中,但命名空间是`App`,所以它应该放在`app`文件夹中。命名空间必须与文件夹名称相同。将文件移动到`app`文件夹中。
是的,它起作用了,非常感谢
没问题!在这里阅读有关PSR-4的信息这里,记得将答案标记为已接受!
当然,谢谢!