記事検索

kiyokawa's Blog

https://jp.bloguru.com/kiyokawa

フリースペース

Japanese melon: Ibara King

スレッド
Japanese melon: Ibara King
My wife is at work and my dogs are getting groomed so I am at home, writing PHP and enjoying a slice of Ibara King.

The name Ibara King is a pun on the prefecture name Ibaraki. Sorry name but the fruit is delicious, it is sweet and has a nice solid texture. The Higo Green I had the other day was softer, more fragrant.

I give this one three stars too.

ワオ!と言っているユーザー

Japanese melon: Higo Green

スレッド
Higo Green Higo Green
When I wore a younger man's clothes, melons were a luxury. These days a whole melon starts at around 5USD.

I like green ones best - here is a picture of Higo Green, a melon farmed in Kumamoto. It was yummy, I give it three stars.
#foodInJapan

ワオ!と言っているユーザー

CakePHP3: Two sets of pagination for the same model

スレッド
Say you want two sets of pagination against the same model, each with a different condition.

Here is how to do it, assuming we have a table called articles, and we want pagination for current articles and for past (expired) articles. In your controller, write this:


$this->paginate = [
'Articles' => [
'scope' => 'current_articles',
],
'PastArticles' => [
'scope' => 'past_articles',
],
];

TableRegistry::config('PastArticles', [
'className' => 'App\Model\Table\ArticlesTable',
'table' => 'articles',
'entityClass' => 'App\Model\Entity\Article',
]);

$currentArticles = $this->paginate(
$this->Articles->find('all', [
'scope' => 'current_articles'
])->where(['expiry >' => Time::now()])
);
$pastArticles = $this->paginate(
TableRegistry::getTableLocator()->get('PastArticles')->find('all', [
'scope' => 'past_articles'
])->where(['expiry <=' => Time::now()])
);

$this->set(compact('currentArticles','pastArticles'));


And in your view, do this:


$this->Paginator->options(['model' => 'Articles']);
echo $this->Paginator->first('<<');
echo $this->Paginator->prev('<');
echo $this->Paginator->numbers();
echo $this->Paginator->next('>');
echo $this->Paginator->last('>>');

$this->Paginator->options(['model' => 'PastArticles']);
echo $this->Paginator->first('<<');
echo $this->Paginator->prev('<');
echo $this->Paginator->numbers();
echo $this->Paginator->next('>');
echo $this->Paginator->last('>>');

#cakephp3

ワオ!と言っているユーザー

CakePHP3: Clear cache, including routing info

スレッド

cd app/bin
./cake cache clear_all
#cakephp3

ワオ!と言っているユーザー

CakePHP3: Check if user browsing from iPad

スレッド
Cake is built in with MobileDetect nowadays, so it is as simple as this:


<?php
use Mobile_Detect;
$mb = new Mobile_Detect;
if($mb->isIpad()){
echo "is ipad";
}else{
echo "is not ipad";
}


There are other handy methods such is isMobile(), isChrome() etc:
http://mobiledetect.net/
#cakephp3

ワオ!と言っているユーザー

CakePHP3: Fetch a particular column from all rows

スレッド
Say we have the following data in a table called countries:

id country capitol
1 USA Washington DC
2 Japan Tokyo
3 United Kingdom London


And you want to fetch data like this:

['Washington DC', 'Tokyo', 'London']


Then do this:

$capitols = $this->countries
->find()
->extract('capitol')
->toArray();

#cakephp3

ワオ!と言っているユーザー

CakePHP3: Get the full URL of the current page

スレッド
Method 1: Use the URL helper


$url = $this->Url->build([
"controller" => "Posts",
"action" => "search",
"?" => ["foo" => "bar"]
],true);


Method 2: Use the Router


use Cake\Routing\Router;

$url = Router::url([
'controller' => 'Posts',
'action' => 'search',
'?' => ['foo' => $bar]
], true);
#cakephp3

ワオ!と言っているユーザー

CakePHP3: Check if record exists

スレッド
Here is a handy way to do it:

To check by primary key:


if ($this->Users->exists($id)) {
}


To find by specifying where clause:


if ($this->Users->exists(['email' => $email])) {
}


Much more convenient than using find('count').
#cakephp3

ワオ!と言っているユーザー

Bash: working with filenames containing spaces

スレッド
At times, I'd like to perform an action against all files in a directory like this:


for i in `find . -type f`
do
cp "${i}" "${i}.bak"
done


This fails when filenames contain spaces, as bash uses whitespace, tab and LF as the default delimiter. Solution? Do this:


SAVEIFS=$IFS
IFS=$(echo -en "\n\b")


#bash

ワオ!と言っているユーザー

  • ブログルメンバーの方は下記のページからログインをお願いいたします。
    ログイン
  • まだブログルのメンバーでない方は下記のページから登録をお願いいたします。
    新規ユーザー登録へ