PHP関連のことを調べてみた2020年11月02日

PHP関連のことを調べてみた2020年11月02日
目次

【AngularJS】href属性の中にバインドした値を入れる際に、keyを指定したい

# 問題点
PHPとAngularJSで開発を行っていた際に、以下のようなコードを書きました。

“`php:view.php

エラーです

// 中略

“`
※`error`に関しては`”err_pth”`というkeyに対し、エラーが起きた箇所を示す値を持つオブジェクトです。

今回、実現したかったこととしては、エラーごとのリンクを表示させるという機能でしたが
このような記述ではHTMLの方にうまくリンクが描画されませんでした。

# 対応
原因は、ダブルクオーテーションの中にダブルクオーテーションが含まれていることでした。

`エラーです`

というような感じで、内側はシングルクオーテーションにした結果、無事反映がされました。

元記事を表示

LaravelでDBにデータを保存する際、created_atなどが自動で入らなかった時の対策

# 状況
Laravelで開発を行っていた際に、DBにデータを保存しようと試みたのですが、`created_at`など自動で登録して欲しいデータがnullになってしまったため、どうしようかと考えました。

## 行った対策(ダメだった、あまり良くない)

### できたけどあまりよろしくないコード
“`php
$result = Model::insert([
// 中略
‘updated_by_user_id’ => $user->id,
‘created_by_user_id’ => $user->id
}
“`
そもそも本来は入力をせず、自動で登録して欲しい。

## 行った対策(できたもの)
他との都合でinsertを使用して直接値を登録していましたが、しっかりとインスタンスを作成してから`save()`メソッドを使ってみました。

“`php
$result = new Model();
// 中略
$result->save();
“`

結果、無事に登録されました!

参考にさせていただきました。ありがとうございました!
https://qiita.c

元記事を表示

Laravel8 CRUD処理を使った投稿アプリを作成する その7 投稿を表示するページの作成

# 目的

– 投稿された内容を削除するページを作成する

# 実施環境

– 筆者の実施環境を記載する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする]() |
| Laravel バージョン | 8.6.0 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構

元記事を表示

Laravelで、Trying to get property of non-object と出たときの2つの解決策

# エラー内容
belongsToでboardsテーブルからpeopleテーブルのレコードを取り出したいときに、Trying to get property of non-objectというエラーが出て解決に時間がかかったので共有します。

## 対象のソース
“`php5:Board.php
public function person()
{
return $this->belongsTo(‘App\Person’);
}

public function getData()
{
return $this->id . ‘: ‘ . $this->title . ‘ (‘ . $this->person->name . ‘)’;
}
“`

これだとBoardクラスのgetDataメソッドの中の「$this->person」がnullで返る場合にTrying to get property of non-objectとなります。

# 解決策1
optional()メソッドを使う。

“`php5:Board.php
public function getDat

元記事を表示

AWS ubuntu無料枠 Laravel 環境構築

AWSでEC2インスタンス建てた後何をすればLaravelを使えるのか1
①apache2のインストール
②サーバーアップデート
③PHPのインストール
④サーバー再起動
⑤サーバー再起動
⑥モジュール入れる
⑦パッケージ更新一色
⑧Composer インストール
⑨swapファイル作る
⑩ Laravelプロジェクト立ち上げ
11権限周り
12 apache設定変更
+α SSLの有効化

①apache2のインストール

“`
sudo apt install apache2
“`

②サーバーアップデート

“`
sudo apt update
“`

③PHPのインストール

“`
sudo apt install libapache2-mod-php7.2
“`

④サーバー再起動

“`
sudo service apache2 restart
“`

⑤サーバー再起動

“`
sudo service apache2 restart
“`

⑥モジュール入れる

“`
sudo apt install zip

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:評定

[原文](https://docs.moodle.org/39/en/Category:Grades)

# カテゴリ:評定

評定に関するドキュメントのページのインデックス。
カテゴリ「成績」のページ

全84ページのうち、以下のページがこのカテゴリに該当します。

A

Advanced grading methods

B

BTEC marking

C

Capabilities/gradeexport/ods:publish
Capabilities/gradeexport/ods:view
Capabilities/gradeexport/txt:publish
Capabilities/gradeexport/txt:view
Capabilities/gradeexport/xls:publish
Capabilities/gradeexport/xls:view
Capabilities/gradeexport/xml:publish
Capabilities/gradeexport/xml:view

元記事を表示

Moodle 3.9 マニュアル – 外部ツール

[原文](https://docs.moodle.org/39/en/External_tool)

# 外部ツール

# 外部ツールとは何ですか?

多くのウェブサイトでは、Moodle独自のリソースやアクティビティとは異なる、または補完的な教材やインタラクティブな学習課題を提供しています。外部ツールは教師が自分のMoodleコースページからこれらのアクティビティにリンクする方法を提供します。学生はMoodleにログインするだけで、接続サイトに再度ログインする必要はありません。

この方法でMoodleへの接続を許可するサイトは[LTI](http://www.imsglobal.org/toolsinteroperability2.cfm)準拠として知られており、ツールプロバイダと呼ばれています。ツール」とは、Moodleが接続できる演習または教材のことです。

外部ツール」は、参加者が他のWebサイトのLTI準拠の学習リソースやアクティビティと対話することを可能にします。(LTIはLearning Tool InteroperabilityのためのIMS標準です。)たとえば、外部

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:LTI

[原文](https://docs.moodle.org/39/en/Category:LTI)

# カテゴリ:LTI

LTIとMoodleに関するページのインデックス。
カテゴリ「LTI」のページ

全3ページのうち、以下の3ページがこのカテゴリに該当します。

E

External tool

L

LTI and Moodle

P

Publish as LTI tool

[メインページ](https://qiita.com/intrajp/items/b334b827e9415af6255f)

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:外部ツール

[原文](https://docs.moodle.org/39/en/Category:External_tool)

# カテゴリ:外部ツール

外部ツールに関するドキュメントページのインデックス。
外部ツール」カテゴリのページ

全12ページ中、このカテゴリには以下のページがあります。

[外部ツール](https://qiita.com/intrajp/items/a8001ae75c5fa370a3fc)

C

Capabilities/mod/lti:addcoursetool
Capabilities/mod/lti:addinstance
Capabilities/mod/lti:addmanualinstance
Capabilities/mod/lti:addpreconfiguredinstance
Capabilities/mod/lti:admin
Capabilities/mod/lti:manage
Capabilities/mod/lti:requesttooladd
Capabilities/mod/lti:view

E

[External

元記事を表示

Moodle 3.9 マニュアル – SCORM の活動

[原文](https://docs.moodle.org/39/en/SCORM_activity)

# SCORM の活動

# SCORMアクティビティとは何ですか?

・SCORMアクティビティは教師が任意のSCORMまたはAICCパッケージをコースにアップロードすることを可能にします。注: SCORM 1.2はMoodleでサポートされていますが、SCORM 2004はサポートされていません。)
・SCORM(Sharable Content Object Reference Model)は、ウェブベースの学習コンテンツの相互運用性、アクセシビリティ、再利用性を可能にする仕様の集まりです。
![SCORMStudentView.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470368/8f49d558-8c55-03aa-9366-91ffc5ea2d9a.png)
SCORMStudentView.png

# どのように設定するのですか?

1. コース内で編集機能をオンにした状態で、ア

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:SCORM

[原文](https://docs.moodle.org/39/en/Category:SCORM)

# カテゴリ:SCORM

SCORM/AICCモジュールに関するドキュメントページのインデックスです。
カテゴリのページ “SCORM”

全17ページ中、このカテゴリには以下のページがあります。

[SCORM の活動](https://qiita.com/intrajp/items/2cbe22b354e97e5f2d39)

C

Capabilities/mod/scorm:addinstance
Capabilities/mod/scorm:deleteownresponses
Capabilities/mod/scorm:deleteresponses
Capabilities/mod/scorm:savetrack
Capabilities/mod/scorm:skipview
Capabilities/mod/scorm:viewreport
Capabilities/mod/scorm:viewscores
Creating SCORM Content

M

元記事を表示

【Laravel】都道府県・市町村マスタをSeeder使って作ってみた

【Laravel】都道府県・市町村マスタをSeeder使って作ってみた

都道府県マスタと市区町村マスタどっかに落ちてないかな~とググってみましたが、
市区町村まで作成している物が見当たらなかったので、作ってみました!
※使うかどうかの判断は、自己責任でお願いします!※
これOUTじゃね?と思ったらコメントお願いします!

さっそく現物

“`php:都道府県マスタのテーブル構造
Schema::create(‘prefectures’, function (Blueprint $table) {
$table->string(‘id’)->primary();
$table->string(‘name’)->default(”);
$table->timestamps();
});
“`

“`

元記事を表示

【PHP初心者】三項演算子使う?使わない?

三項演算子を使ったほうがいいのかわからなかったので個人的な意見をまとめました。

まず、三項演算子についてかんたんに紹介します。
### 三項演算子
~~~php
// $fuga = trueとなる。
$hoge = 20;
$fuga = $hoge > 0 ? true : false;

// 行っている処理は以下と同じ
$hoge = 20;
if ($hoge > 0) {
$fuga = true;
} else {
$fuga = false;
}
~~~

### 三項演算子は使うべき?
三項演算子は使う?使わない?の賛否両論があります。
個人的な意見としては、使って良いと思います。
ただチームでルールを決めてから使うべきです。

以下、使わないほうが良いパターンです。

### 三項演算子を使わないほうがいいパターン1
**三項演算子を積み重ねて使う**

~~~php
$hoge = 20;
$fuga = $hoge > 0 ? true : false ? “a” : “b”;

// 上記の結果は”a”となります。
// 想像の結果とあって

元記事を表示

Could not open input file でエラー

ターミナルにphp artisan serveを実行する際に
Could not open input file
と、エラーが出ました。

初心者の私は・・・なんで?ってなりました。

色々調べて理解した事!
そもそもターミナルの使い方がわかっていなかった!

php artisan serveを実行するためには
ターミナルのなかで、自分がどこの位置にいてるのかを理解する必要がありました。
そうです・・・artisanという場所がどこのフォルダに存在しているのか。

Laravelの中の、applicationの中に存在しているはずです。

ディレクトリの移動に使うコマンドは
cd
そのあと、次の選択肢を探すために
ls -a
を使います。
applicationまでたどり着いたら
php artisan serve
を実行しましょう。
これで解決します。

基本が理解できてないと変なところで時間取られます・・・。

元記事を表示

【ミライトデザイン社内勉強会#7】例外の基本と設計について

– 例としてPHPの例外を上げているが、大体どの言語でも通用する話。

## 例外の基本

– トランザクションの処理のところでは誰でも例外を使ってと思う

“`php
try {
db:save(User)
db:save(Plan)
db:commit
} catch {
db:rollback
}
“`

### PHPの例外
[お前は PHP 7 における Fatal Error / Catchable Fatal Error / Error / ErrorException / Exception の違いを言えるか? – Qiita](https://qiita.com/mpyw/items/c69da9589e72ceac470c)

[PHP: Throwable – Manual](https://www.php.net/manual/ja/class.throwable.php)

– 自分で作る例外はLogicExceptionかRuntimeExceptionを継承したもが大体になると思う

– [PHP標準例外まとめ – Q

元記事を表示

SESSIONとは

こちらの記事は簡潔に短くわかりやすい内容で投稿しますので、もっと詳しい内容について知りたい方は最後の参考元リンクよりご覧ください。
また、SESSIONの前にCookieの記事を先に読むことをオススメします。
Cookieについて(https://qiita.com/yyy752/items/9cc85104c3eba900ca3a)

##結論
SESSIONとは、`Webサイトにアクセスして行う一連の行動`のことです。
Webサイトにアクセスしてから一定時間経過する事で通信が終了するか、ブラウザを閉じるまでが1セッションとなります。
Cookieはクライアント(PCやスマホ)に保存されますが、SESSIONは`サーバー`に保存されます。

##SESSIONが必要な理由
Webサイトは、`クライアント(PCやスマホ)`がサーバーに`リクエスト(依頼)`し、サーバーが`レスポンス(返信)`することでブラウザに表示させています。
リクエストとレスポンスの1往復で通信は完了されてしまうので、Cookieを使って前の情報を把握させないと、一連の行動(`SESSION`)として扱えなくなって

元記事を表示

Laravelプロジェクトを作った後の動き

Laravelプロジェクト作った後に何をするか!フロー

【環境】
サーバー:ubuntu
web: apache2

【フロー】
①Apache2のドキュメントルート変更
②AllowOverride All変更奴
③RewriteEngine on
④サーバー再起動
⑤オーナー・パーミッションを調整

①Apache2のドキュメントルート変更

“`
cd ~
cd /etc/apache2/sites-available/
ls
000-default.conf default-ssl.conf←この2つを変更する

“`
“`
000-default.conf

上の方にある
DocumentRoot /var/www/laravelプロジェクト名/public に変更
“`

“`
default-ssl.conf

上の方にある
DocumentRoot /var/www/laravelプロジェクト名/public に変更
“`

②AllowOverride All変更奴

“`
cd ~
cd /etc/apache2/
sudo

元記事を表示

PHP・GCの話-8話)GC 関連機能紹介2(Weak Reference, Weak Map)(END)

## 前書き

– すべての記事は、自分の勉強目的と主観の整理を含めています。あくまで参考レベルで活用してください。もし誤った情報などがあればご意見をいただけるととっても嬉しいです。
– 内容では、省略するか曖昧な説明で、わかりづらいところもあると思います。そこは、連絡いただければ補足などを追加するので、ぜひ負担なくご連絡ください。
– 本文での「GC」は、「Garbage Collection, Garbage Collector」の意味しており、略語として使われています。
– この記事は、連載を前提に構成されています。

**※ 連載目録**

> – [PHP・GCの話-1話)なぜGarbageCollection? メモリとGCを意識する 『投稿済み』](https://qiita.com/genie-oh/items/e6dfc49fb9899f931271)
> – [PHP・GCの話-2話)変数の管理情報、zval containerとreference count 『投稿済み』](https://qiita.com/genie-oh/items/3537a91e65c5

元記事を表示

LaravelなしでEloquent ORMを使う方法

## Eloquent ORMインストール

“`sh
composer require illuminate/database
“`

## bootstrap.php作成

`bootstrap.php`ファイルは`composer.json`と同様の位置に保存すること

“`php
require “vendor/autoload.php”;

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;
$capsule->addConnection([
“driver” => “mysql”,
“host” => “localhost”,
“database” => “test_db”,
“username” => “root”,
“password” => “root”,
“port” => “3306”,
]);

$capsule->setAsGlobal();
$capsule->bootEloquent();
“`

## モデル作

元記事を表示

aタグ内にimgタグを配置すると、imgタグのsrcがリンク先となってしまう問題

# 問題

以下のように、aタグ内にimgタグを書くのはとても一般的かと思いますが、
Android端末でのWebViewでimgタグをタップした場合のみ、imgタグ内のsrcに飛んでしまう問題がありました。

“`

OTHERカテゴリの最新記事