Если внешняя type
команда недоступна (как принято здесь ), мы можем использовать POSIX-совместимый env -i sh -c 'type cmd 1>/dev/null 2>&1'
:
# portable version of Bash's type -P cmd (without output on stdout)
typep() {
command -p env -i PATH="$PATH" sh -c '
export LC_ALL=C LANG=C
cmd="$1"
cmd="`type "$cmd" 2>/dev/null || { echo "error: command $cmd not found; exiting ..." 1>&2; exit 1; }`"
[ $? != 0 ] && exit 1
case "$cmd" in
*\ /*) exit 0;;
*) printf "%s\n" "error: $cmd" 1>&2; exit 1;;
esac
' _ "$1" || exit 1
}
# get your standard $PATH value
#PATH="$(command -p getconf PATH)"
typep ls
typep builtin
typep ls-temp
По крайней мере, на Mac OS X 10.6.8 с использованием Bash 4.2.24 (2) command -v ls
не соответствует перемещенному /bin/ls-temp
.
Это дизайн CakePHP. CakePHP всегда видит tinyint(1)
как boolean, поэтому он всегда будет преобразовывать ваше значение в true
/ false
, следовательно, 1
/ 0
.
Чтобы устранить эту проблему, используйте tinyint(2)
вместо для вашего типа столбца. Не забудьте очистить кэш вашей модели!
Документация типа данных CakePHP: http://book.cakephp.org/3.0/en/orm/database-basics.html#data-types
Сообщение в блоге об этом: http://blog.room34.com/archives/2649
Подобный Q & amp; A: CakePHP и tinyint как boolean