小编liz*_*kya的帖子

无法在 Tinker 中使用 Laravel Factory

我无法在 Laravel Tinker 中使用模型工厂。

//ItemFactory.php

class ItemFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Item::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'name' => $this->faker->name,
            'slug' => $this->faker->slug(5, true),
            'code' => $this->faker->words(5, true),
            'description' => $this->faker->sentence,
            'price' => $this->faker->randomNumber(1000, 10000),
            'size' => $this->faker->randomElement(['Small', 'Medium', 'Large',]),
        ];
    }
}
Run Code Online (Sandbox Code Playgroud)

内部修补匠

>>> factory(App\Item::class)->create();
Run Code Online (Sandbox Code Playgroud)

它给我一个错误:

PHP 致命错误:在第 1 行的 …

php laravel tinker laravel-8

9
推荐指数
3
解决办法
1万
查看次数

Laravel Eloquent:违反完整性约束:1052 where 子句中的列“id”不明确

我正在建立一个网站,许多成员可以加入许多团体。

//User.php
public function groups()
    {
        return $this->belongsToMany(Group::class, 'group_member', 'member_id', 'group_id');
    }
Run Code Online (Sandbox Code Playgroud)

从组id中检索相关成员的函数

//UserRepository.php
public function getRelatedMembersByGroupIds(array $groupIds)
    {
        $members = User::whereHas('groups', function ($query) use ($groupIds) {
            return $query->whereIn('groups.id', $groupIds);
        });
        return $members->get();
    }
Run Code Online (Sandbox Code Playgroud)

正在从 UserController 调用存储库

//UserController.php
public function getRelatedMembersByGroupIds(Request $request)
    {
        $groupIds = $request->get('group_ids');

        $members = $this->userRepository->getRelatedMembersByGroupIds($groupIds);

        $responses = [
            'status' => 'success',
            'groupRelatedMembers' => $members
        ];

        return response()->json($responses);
    }
Run Code Online (Sandbox Code Playgroud)

它返回

SQLSTATE[23000]:违反完整性约束:1052 列“id”在 where 子句中不明确(SQL:select users.* from users where exists (select * from groupsinner join group_member on groups.id …

php laravel eloquent

4
推荐指数
4
解决办法
4787
查看次数

SQLSTATE[HY000]:一般错误:1364 字段“标题”没有默认值

嗨,我正在尝试将数据插入 db,但它说:

SQLSTATE [HY000]:常规错误:1364字段'标题'不具有默认值(SQL:插入到projectsowner_idupdated_atcreated_at)的值(1,2019年6月28日13点17分11秒,2019年6月28日13 :17:11))

我正在从头开始关注Laracasts Laravel 教程

控制器:

      public function store()
      {
        $attributes = $this->validateProject();
        $attributes['owner_id'] = auth()->id();
        $project = Project::create($attributes);

    //Project::create($attributes);
    //Project::create(request(['title', 'description']));

          Mail::to($project->owner->email)->send(
            new ProjectCreated($project)
          );

        return redirect('/projects');
      }
Run Code Online (Sandbox Code Playgroud)

模型:

  protected $guarded = [];
Run Code Online (Sandbox Code Playgroud)

桌子:

      Schema::create('projects', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('owner_id');
        $table->string('title');
        $table->text('description');
        $table->timestamps();

        $table->foreign('owner_id')->references('id')->on('users')->onDelete('cascade');
    });
Run Code Online (Sandbox Code Playgroud)

刀片文件:

   <form method="POST" action="/projects">
   @csrf
   <div class="field">
    <label class="label" for="title">Title</label>
    <div class="control">
        <input type="text" class="input {{ $errors->has('title') ? 'is-danger' …
Run Code Online (Sandbox Code Playgroud)

laravel eloquent laravel-5.8

4
推荐指数
1
解决办法
7422
查看次数

如何指定Tinker使用其他数据库连接?

我有两个数据库连接。一个用于我的应用程序,另一个用于测试。在我的.. \ config \ database.php中

         'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

        'testing' => [
            'driver'    => 'mysql',
            'host'      => env('DB_TEST_HOST', 'localhost'),
            'database'  => env('DB_TEST_DATABASE', 'forge'),
            'username'  => env('DB_TEST_USERNAME', 'forge'),
            'password'  => env('DB_TEST_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方式更改播种中的数据库连接

php artisan db:seed …
Run Code Online (Sandbox Code Playgroud)

database laravel artisan laravel-5.1 tinker

2
推荐指数
2
解决办法
876
查看次数

laravel [1049]未知数据库

我是laravel的新手,尝试通过控制器查看数据库时当前遇到问题。当我尝试使用控制器查看数据时,出现以下错误。

“ SQLSTATE [HY000] [1049]未知数据库'laravel'”。

如果使用手工艺修补匠,我可以执行:: all()并查看我的数据,我也成功地迁移了我的数据。只是出于某种原因似乎不喜欢我的观点。

我已经查看了建议运行的其他类似答案

php artisan cache:clear

但是,这对我没有任何帮助。

控制器:

class authorsController extends Controller
{

    public function index(){
        $authorList = \App\Author::all();
        //return $authors;
        return view('library.authors');
    }
}
Run Code Online (Sandbox Code Playgroud)

内.env文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=library
DB_USERNAME=root
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)

mysql laravel

1
推荐指数
1
解决办法
1175
查看次数