查找PHP木马文件
find /home/wwwroot -type f -name "*.php" | xargs grep "eval(" |more find /home/wwwroot -type f -name "*.php" | xargs grep "eval(" |more networks:
当前网络名称:
external:
name: 另一个网络的全称 composer require --ignore-platform-reqs
composer update --ignore-platform-reqs 假设现在用户模型 User 和 微信 Wechat 是一对一关系,然后进行以下操作:
$user = User::where('name', 'wuqinqiang')->first();
$user->age = 18;
$user->wechat->nickName = "Remember";
$user->save();那么此时,会保存用户信息,但是并不会保存对应 Wechat 的关联信息,想让它一起保存咋么办?也很简单。把 save 换成 push 即可。
$user->push();在使用 Eloquent 模型的时候,创建或者更新模型这些操作的时候,是有几个阶段的事件的,有时候可能因为业务上的需要,可能会监听某个事件执行某些操作。比如下面这段监听对应事件执行对应操作的代码:
public static function boot()
{
parent::boot();
static::creating(function ($model) {
//业务逻辑
});
}那要是不想在操作时触发任何事件则么办?你可以执行一个回调函数而无需触发任何事件:
$user = User::withoutEvents(function () {
return //保存或者更新代码
});想知道从数据库查询获取出来的模型是否被动过手脚 (修改)? 也有办法。可以使用 isDirty
$ user = User :: where('name','wuqinqiang')->first();
$ user->isDirty(); // 还没被动过 返回 false
$ user->name ='curry';
$ user->isDirty(); //模型被动过了 返回true
$ user->isDirty('email'); // 可以传入参数 验证某个参数是否被动过,这个我还没碰过 当然 false
$ user->isDirty('name'); // true 如果你还想具体了解到哪些是被动过了,可以使用:
$user->getDirty(); 你将得到一个数组 ["name" => "curry"]$user->getChanges();仅当您使用 syncChanges() 保存模型或同步更改时,更改才会显示。
既然上面提到是否被动过手脚,那动过手脚之后我又想看看之前的模样 (ps: 人就是这样麻烦)。强大的 Laravel Eloquent 也可以办到:
user = User :: where('name','wuqinqiang')->first();
$user->name = 'curry';
$user->getOriginal(); // 返回数组 "name" => "wuqinqiang"
$user->getOriginal('name'); //指定要看哪个属性的原值 "wuqinqiang"在使用 firstOrCreate 或 updateOrCreate 之后,如果想知道是否是 create 的数据,常用于自动注册操作,只在第一次插入时执行派发积分等事件
$User = User::firstOrCreate(['name' => 'test'], ['email' => 'test@test.com']);
if($User->wasRecentlyCreated){
// true 则是 create 的数据,赠送积分
}class User extends Model
{
protected $appends = ['is_adult'];
public function getIsAdultAttribute()
{
return $this->attribute['age'] > 18;
}
}这个操作大家是不是都用过,在模型里新增一个数据库不存在的字段,非常方便。但是 $appends 是全局的,所有的查询中都会添加 is_adult 这个字段。
User::select('id', 'name')->first();像这样查询的时候甚至还会报错提示 age 字段不存在。
我们可以像这样,在查询的时候再将 is_adult 添加进查询结果集中。
$user = User::first();
$user->append('is_adult');你以为这就完了么?不仅仅如此,如果我们查询的是多个用户怎么办,难道自己 for 循环 append 一遍么?不不不,我们优雅的 Laravel 已经为我们考虑过了。
$user = User::paginate(10);
$user->each->append('is_adult');没有提示:
User::where('sex', 'girl')->get();在最前面加个 query ,轻轻松松娶富萝莉走上人生巅峰。
User::query()->where('sex', 'girl')->get();User::query()->find(2);User::query()->firstWhere(['name' => 'xxx']);当你修改了一条 Eloquent 记录后,你可以用 getOriginal () 来获取原来的属性。
$user = App\User::first();
$user->name; // John
$user->name = "Peter"; // Peter
$user->getOriginal('name'); // John
$user->getOriginal(); // 原始的 $user 记录默认情况下,Laravel 使用 deleted_at 列来处理软删除。 您可以通过明确定义 DELETED_AT 属性来更改此设置。
class User extends Model
{
use SoftDeletes;
/**
* 定义 "deleted at" 列的名字.
*
* @var string
*/
const DELETED_AT = 'is_deleted';
}或者定义一个访问方法。
class User extends Model
{
use SoftDeletes;
public function getDeletedAtColumn()
{
return 'is_deleted';
}
}使用 fresh() 从数据库加载一个全新的模型实例。
$user = App\User::first();
$user->name; // John
// 用户记录通过另一个线程更新了。 例如: 'name' 改成了 // Peter。
$updatedUser = $user->fresh();
$updatedUser->name; // Peter
$user->name; // John你可以使用 refresh() 从数据库中的新值来重新加载现有模型。
$user = App\User::first();
$user->name; // John
// 用户记录通过另一个线程更新了。 例如: 'name' 改成了 // Peter。
$user->refresh();
$user->name; // Peter注意: refresh() 还将更新现有模型的加载关系。
使用 is() 判定两个模型是否有相同的ID并且属于同一张表。
$user = App\User::find(1);
$sameUser = App\User::find(1);
$diffUser = App\User::find(2);
$user->is($sameUser); // true
$user->is($diffUser); // false使用 replicate() 克隆一个模型。它将复制一个模型的副本到一个新的、不存在的实例中。
$user = App\User::find(1);
$newUser = $user->replicate();
$newUser->save();使用 find() 或 findOrFail() 方法时,可以指定要选择的属性作为第二个参数。
$user = App\User::find(1, ['name', 'age']);
$user = App\User::findOrFail(1, ['name', 'age']); curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动docker
sudo systemctl start docker
设置开机启动
systemctl enable docker composer require encore/laravel-admincomposer require dcat/laravel-admincomposer require jasonc/apicomposer require iidestiny/laravel-filesystem-osscomposer require intervention/imagecomposer require jasonc/smscomposer require fruitcake/laravel-corscomposer require "overtrue/laravel-wechat:~5.0"文档地址 https://www.easywechat.com/docs/4.1/official-account/index
composer require guzzlehttp/guzzleGit保存用户名和密码
1、进入Git 配置文件。
~$ vim ~/.gitconfig
2、修改配置文件,添加下面这一行。
[credential]
helper = store
使用的时候,在输入一次用户名和密码之后,就不需要再提交用户名和密码。
tar -C /usr/local -xzf go1.14.linux-amd64.tar.gzvi /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/root/go
export PATH=$PATH:$GOPATH/BIN
source /etc/profile
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/mongo.log
logappend=true
fork=true
port=27017
directoryperdb=true/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongo.confpecl install mongodbcomposer require jenssegers/mongodb $ composer require --dev "xethron/migrations-generator"php artisan migrate:generate