php -S localhost:8080 -t public
指定当前public目录位对外目录
php -S localhost:8080 -t public
指定当前public目录位对外目录
class OctopusRecord extends Model { use SoftDeletes; use HasFactory; protected $connection = "beiko_mysql"; protected $table = 'octopus_records'; //所有字段一定要满足 小写下划线模式 public function triage_tags() { return $this->hasMany(OctopusRecordTriageTag::class,"octopus_record_id"); } }
$form->tab("分诊信息",function (Form $subform) {
$subform->hasMany('triage_tags', "分诊标签", function (Form\NestedForm $nestedForm) {
$nestedForm->hidden('id');
$nestedForm->select('name', "标签")->options(TriageTag::all()->pluck('name', 'name'));
//$nestedForm->text('name', "标签");
});
//->distinctFields(["name"]);
//->useTable();
//->useTab();;
//$form->multipleSelect('triage_tags', "分诊标签")->options([0=>"无效",1=>"有效"]);
//->options(TriageTag::all()->pluck('name', 'name'));
$subform->textarea('conclusion', __('Conclusion'));
});
use Illuminate\Support\Facades\Log; Log::info("triageTeam" . json_encode($triageTeam)); Log::info("schools" . json_encode($triageTeam->schools())); 强制使用dd($variable)能在页面打印变量 很好用
php-fpm 是以守护进程形式执行php进程 以便下游服务器发送cgi通信数据过来 然后通过标准输出流返回网页数据到 cgi服务器
具体关键配置
进程owner 用户(权限相关)
user = www-data
group = www-data
listen.acl_users = apache,nginx,www-data
//允许访问的用户
子进程数量限制 (性能相关)
监听方式(unix file socket 或者 tcp ip socket)(注意unix:socket 方式需设定该文件读写权限)
listen = /run/php-fpm/www.sock
listen.owner = nobody
listen.group = nobody
listen.mode = 0660
listen = 127.0.0.1:6000
listen.allowed_clients = 127.0.0.1
debug 配置
define( ‘WP_DEBUG’, false );
再wp-config.php 配置这两个值可以在也买你上输出debug信息
要执行请求的操作,wordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的主机提供商
sudo chown -R www-data /var/www/wordpress
sudo chmod -R 775 /var/www/wordpress
修改wordpress目录拥有者为www-data
server {
listen 8080;
server_name laravel.localhost;
client_max_body_size 10M;
# Load configuration files for the default server block.
location / {
root D://robin-admin/public;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
root D://robin-admin/public;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
nginx 根目录指向laravel 的下的public 文件夹
try_files $uri $uri/ /index.php?$query_string; 可以有效重新访问后缀(不需要显式指明php后缀)
今天,我们将通过介绍 Laravel 中一个不太为人所知的功能,来展示如何快捷的调试数据库中的数据。通过使用 Laravel artisan 内建的 php artisan tinker
, 我们可以很方便的看到数据库中的数据并且执行各种想要的操作。
Laravel artisan 的 tinker 是一个 REPL (read-eval-print-loop),REPL 是指交互式命令行界面,它可以让你输入一段代码去执行,并把执行结果直接打印到命令行界面里。
// see the count of all users
App\User::count();
// find a specific user and see their attributes
App\User::where('username', 'samuel')->first();
// find the relationships of a user
$user = App\User::with('posts')->first();
$user->posts;
factory(App\User::class, 10)->create();
App\User::all();
App\User::count();
$user = new App\User;
$user->name = "Wruce Bayne";
$user->email = "iambatman@savegotham.com";
$user->save();
doc XXX
查阅某个方法的文档
show XXX
显示某个方法的代码
laravel 的form 对象 有magic方法 可以快速添加表单项
/**
* Class Form.
*
* @method Field\Text text($name, $label = '')
* @method Field\Password password($name, $label = '')
* @method Field\Checkbox checkbox($name, $label = '')
* @method Field\CheckboxButton checkboxButton($name, $label = '')
* @method Field\CheckboxCard checkboxCard($name, $label = '')
* @method Field\Radio radio($name, $label = '')
* @method Field\RadioButton radioButton($name, $label = '')
* @method Field\RadioCard radioCard($name, $label = '')
* @method Field\Select select($name, $label = '')
* @method Field\MultipleSelect multipleSelect($name, $label = '')
* @method Field\Textarea textarea($name, $label = '')
* @method Field\Hidden hidden($name, $label = '')
* @method Field\Id id($name, $label = '')
* @method Field\Ip ip($name, $label = '')
* @method Field\Url url($name, $label = '')
* @method Field\Color color($name, $label = '')
* @method Field\Email email($name, $label = '')
* @method Field\Mobile mobile($name, $label = '')
* @method Field\Slider slider($name, $label = '')
* @method Field\File file($name, $label = '')
* @method Field\Image image($name, $label = '')
* @method Field\Date date($name, $label = '')
* @method Field\Datetime datetime($name, $label = '')
* @method Field\Time time($name, $label = '')
* @method Field\Year year($column, $label = '')
* @method Field\Month month($column, $label = '')
* @method Field\DateRange dateRange($start, $end, $label = '')
* @method Field\DateTimeRange dateTimeRange($start, $end, $label = '')
* @method Field\TimeRange timeRange($start, $end, $label = '')
* @method Field\Number number($name, $label = '')
* @method Field\Currency currency($name, $label = '')
* @method Field\SwitchField switch($name, $label = '')
* @method Field\Display display($name, $label = '')
* @method Field\Rate rate($name, $label = '')
* @method Field\Divider divider($title = '')
* @method Field\Decimal decimal($column, $label = '')
* @method Field\Html html($html)
* @method Field\Tags tags($column, $label = '')
* @method Field\Icon icon($column, $label = '')
* @method Field\Captcha captcha($column, $label = '')
* @method Field\Listbox listbox($column, $label = '')
* @method Field\Table table($column, $label, $builder)
* @method Field\Timezone timezone($column, $label = '')
* @method Field\KeyValue keyValue($column, $label = '')
* @method Field\ListField list($column, $label = '')
* @method mixed handle(Request $request)
*/
真实调用的方法
/**
* Generate a Field object and add to form builder if Field exists.
*
* @param string $method
* @param array $arguments
*
* @return Field|$this
*/
public function __call($method, $arguments)
{
if (!$this->hasField($method)) {
return $this;
}
$class = BaseForm::$availableFields[$method];
$field = new $class(Arr::get($arguments, 0), array_slice($arguments, 1));
return tap($field, function ($field) {
$this->pushField($field);
});
}
__call 属于php 类对象的magic 方法
当调用一个不存在与类定义的方法 就会 在call中调用
function __call($name,$arguments) {
}
$name 为方法名字
$argument 为方法参数