小编jst*_*ein的帖子

PHP Laravel:无法建立连接,因为目标计算机主动拒绝它

我正在Laravel 5中构建一个Web应用程序.该应用程序应该将"类别名称"存储在MySQL数据库中并显示一个表单以添加新的"类别名称".当我执行命令php artisan serve并导航到http:// localhost:8000/admin/categories /时,收到以下错误消息:

PDOException in Connector.php line 50:
SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
Run Code Online (Sandbox Code Playgroud)

根据我读到的关于堆栈溢出的几篇帖子,许多用户遇到此错误都没有正确配置.env文件,该文件覆盖了PHP数据对象(PDO)的默认设置,如database.php文件中所指定..env文件定义如下:

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
Run Code Online (Sandbox Code Playgroud)

并且database.php文件中的mysql密钥如下:

 'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'homestead'),
            'username'  => env('DB_USERNAME', 'homestead'),
            'password'  => env('DB_PASSWORD', 'secret'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我进入我的虚拟机并运行时mysql -uhomestead -psecret homestead,我能够连接到数据库.问题是,当我可以使用相同的参数直接连接到它时,为什么Laravel无法连接到MySQL?还有什么可以拒绝进入Laravel?

php mysql pdo laravel

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

Laravel 5种子

我正在阅读"Laravel 5 Essentials"中的教程.当我尝试使用命令播种数据库时

php artisan db:seed

我收到错误

[ReflectionException]
  Class BreedsTableSeeder does not exist
Run Code Online (Sandbox Code Playgroud)

BreedsTableSeeder的代码定义如下:

<?

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class BreedsTableSeeder extends Seeder {

    public function run() 
    {
        DB:table('breeds')->insert([
        ['id' => 1, 'name' => "Domestic"],
        ['id' => 2, 'name' => "Persian"],
        ['id' => 3, 'name' => "Siamese"],
        ['id' => 4, 'name' => "Abyssinian"],
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

DatabaseSeeder定义如下:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-seeding

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

在 Homestead 中配置 php.ini

我试图通过指定来更改我的 php.ini 文件中的变量max_input_vars

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 2500
Run Code Online (Sandbox Code Playgroud)

和跑步

sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)

尽管我在本地机器 (C:\xampp\php\php.ini) 和 Homestead (/etc/php5/fpm/php.ini) 上将此变量设置为 2500,但我仍然收到以下错误消息

  parse_str(): Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini
Run Code Online (Sandbox Code Playgroud)

我知道 .htaccess 在每个站点的基础上覆盖 php.ini,是否还有其他文件覆盖 php.ini?更改php.ini文件后是否还有其他服务需要重新加载?

php laravel homestead

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

Rails:隐藏字段不传递值

我正在尝试为站点管理员创建一个表单,以将事件与之前的发言者列表相关联.管理员导航到扬声器,单击"添加到事件"按钮,然后会出现一个表格,询问发言人正在参加哪个活动.扬声器应该作为隐藏字段传入,并通过集合选择列出事件.不幸的是,当我提交表单时,扬声器ID没有传入数据库.

为什么我的表单不保存隐藏字段中的值,我该如何修复它?集合选择中的值正在传递.

<%= form_for(@event_speaker) do |f| %>
  <% if @event_speaker.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@event_speaker.errors.count, "error") %> prohibited this event_speaker from being saved:</h2>

      <ul>
      <% @event_speaker.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <p><%= @speaker.first_name %></p>
  <div class="actions">
    <%= @speaker.id %>
    <%= f.hidden_field(:speaker) %>
    <%= hidden_field_tag('speaker_id',@speaker.id)  %>
  </div>
  <div class="field">
    <%= f.label :event %><br>
    <%= f.collection_select(:event_id, @upcoming_events, :id, :name)%>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

和控制器:

def new
    @event_speaker …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails hidden-field

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