IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

laravel-adminで記事の編集時に、日時が、更新日時になってしまう

管理画面の記事の更新時に、日時として使っている項目がどうしても、更新日時として上書きされてしまう。プログラムがわるいのかと色々しらべてみたのですが、わからず。結局、DBの項目の設定の問題でした。

phpMyAdminでテーブルを作成した際、timestampの属性で、on update current timestampを外す必要があるようです。

 

今後は、ちゃんと確認しながら、やらないといけないですね

laravel_adminの一覧ページでのcreated_atの表示について

一覧ページでどうしても、UTCで表示されるので、以下で対応しました。

 

        $grid->column("updated_at","更新日時")->display(function ($updated_at) {
            $t = new DateTime($updated_at);
            $t->setTimeZone(new DateTimeZone('Asia/Tokyo'));
            return $t->format('Y-m-d H:i:s');
        });

DateTimeとDateTimeZoneを使うために、

use DateTime;
use DateTimeZone;

を追加するのを忘れずに。

laravel-adminでControllarを作る際にエラーがでた

Laravel8でMacで、以下のコマンドを実行した際にエラーがでた。

#php artisan admin:make InfoController --model=App\\Models\\Info

Model does not exists !

 

対応方法は、2つあるみたい。

  1. Modelを先に作成しとく必要がある。マニュアルには、Controllarをつくれとかいているけど、その前に、以下のModelをつくっとく必要があります。

    php artisan make:model Info 

  2. --modelのパス間違い
    マニュアルには、--model=App\\\Infoとあるけど、laravel8から仕様がかわったそうで。--model=App\\Models\\InfoとModelsを間に入れる必要があります。

 

参考まで。

MacでXdebugをインストール方法は?

MacでM1を使っている際に、Xdebugをインストールする場合、以下のコマンドで実行するといいです。LAMP環境は、XAMMPをつかって構築しています。

 

arch -arm64 sudo pecl install xdebug   

 

phpizeする際に以下のエラーがでた。

Cannot find autoconf. Please check your autoconf installation and the

$PHP_AUTOCONF environment variable. Then, rerun this script.

brewをつかってautoconfをインストールしてみたら、エラーがでなくなりました。

 

Pleskでコマンドラインを使って、一括でドメイン毎のバックアップ設定を変更する方法

Pleskをつかっていて、複数のドメインのバックアップの実行すするかのON/OFFを変更したい場合、管理画面からやっていると時間がかかってしまうので、一括で、SSHでログインしてコマンドラインからコマンドで実行する方法を紹介します。

 

Plesk9以前の場合

・ローカルバックアップをONにする場合

/usr/local/psa/bin/subscription_settings -u example.com -allow_local_backups true

・ローカルバックアップをOFFIにする場合

/usr/local/psa/bin/subscription_settings -u example.com -allow_local_backups false

FTPバックアップをONにする場合

/usr/local/psa/bin/subscription_settings -u example.com -allow_ftp_backups true

 

Plesk10以降の場合

・ローカルバックアップをONにする場合

plesk bin subscription_settings -u example.com -allow_local_backups true

・ローカルバックアップをOFFIにする場合

plesk bin subscription_settings -u example.com -allow_local_backups false

FTPバックアップをONにする場合

plesk bin subscription_settings -u example.com -allow_ftp_backups true

 

<参考サイト>

support.plesk.com

MysqlのinnoDBのデータ復旧方法

AWSで、インスタンスが壊れたけど、ディスクは、問題なくのこっていて、Mysqlのデータ復旧をしました。

 

MysqlのデータのタイプがInnoDBだと、/var/li/mysqlにあるデータをそのままこぴーしただけでは、うまく行かないので、違う方法で復旧作業をしました。

まず、別途インスタンスを立ち上げて、セカンドパーティションとして、ディスクをマウントします。

その後、新しいインスタンスMysqlをインストールし、/etc/my.,cnfにあるdatadirを上記でマウントしてディスクをみれるようになったmysqlのデータ格納場所に変更してMysqlを起動すると、参照データが変わってしまって、データをみることができます。

 

最初、データコピーでうまくいくかなっとおもっていたけど、エラーがでまくって、困ってたところ、ふとこのやり方を思いつきました。

 

 

Rustの関数

次は、関数です。

 

 

命名規則

まずは、関数の命名規則ですが、スネークケースを使っており、全文字を小文字にし、単語区切りは、アンダースコアを使います。

引数

サンプルを見るのが一番なので、以下となります。

fn main() {
another_function(5);
}

fn another_function(x: i32) {
println!("The value of x is: {}", x); // xの値は{}です
}

 注意するところとしては、仮引数(関数を定義する側の引数)は、型を宣言しなければなりません。

文と式

こういう考え方があるのは知らんかったです。

  • 文とは、なんらかの動作をして値を返さない命令です。
  • 式は結果値に評価されます。ちょっと例を眺めてみましょう。

戻り値のある関数

この考え方もめすらしいのでは。

関数は、それを呼び出したコードに値を返すことができます。→のあとに型を書いて宣言します。関数の戻り値ですが、returnを使わずに関数本体のブロックの最後の式の値で戻り値を指定することもできます。

fn five() -> i32 {
 5
}

fn main() {
 let x = five();

 println!("The value of x is: {}", x);
}

また、こんな例もあります。

・うまくいく場合

fn main() {
 let x = plus_one(5);

 println!("The value of x is: {}", x);
}

fn plus_one(x: i32) -> i32 {
 x + 1
}

 

・だめな場合

fn main() {
 let x = plus_one(5);

 println!("The value of x is: {}", x);
}

fn plus_one(x: i32) -> i32 {
 x + 1;
}

 違うところがどこかというと、関数の中のx+1のセミコロンがあるかないかです。なぜ、セミコロンがある場合がエラーとなるかというとセミコロンがあると文になってしまい、戻り値を返さず、関数の→でi32と型を宣言しているのに、型がちがうとエラーがでます。

Rustの関数の戻り値は、なかなか癖があって覚えにくいかもしれません