在[App\Models\Task]上添加[title]到fillable属性,以允许批量赋值。

10 浏览
0 Comments

在[App\Models\Task]上添加[title]到fillable属性,以允许批量赋值。

我无法解决这个问题,我尝试了Stack Overflow上的方法,但都不起作用。

有人可以帮我吗?

error

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;
}

0
0 Comments

在这个问题中,报错显示您需要将`title`添加到您的模型属性`$fillable`中... 阅读文档的这部分内容...

protected $fillable = ['title'];


正如Tem Lewis所说,您还可以阅读这个文档

比我快 🙂 这个文档更有用: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的信息这里,记得将答案标记为已接受!

当然,谢谢!

0