[cakePHP]cakephpのShell内部でdatabase.phpに書いたデータベース名を取得する

// app/Console/Command/HogeShell.php
class HogeShell extends AppShell {
//ConnectionManagerを使ってデータベースを取得する
var $uses = array('ConnectionManager'); // モデルを使用する場合はここに記述すれば楽。

function dbname() {
$db_config = ConnectionManager::getDataSource('default');
$db_name = $db_config->config['database'];
var_dump($db_name);
}
}


あとはなんか
php /...{appまでの絶対パス}.../app/Console/cake.php Hoge dbname
みたいな感じでコマンド打つなり、タスクに組み込むなり。


参考URL:How Can I Read the DB Configuration Settings From a Cake Shell?
このエントリーをはてなブックマークに追加

カスタムビュー作成時のテンプレート(AutoLayout対応)

File's Ownerに対してクラス名を指定します。
カスタムビュー作成時のテンプレート(AutoLayout対応)_1
#import <UIKit/UIKit.h>
@interface HogeView : UIView
@end

#import "HogeView.h"
@interface HogeView ()
@end

@implementation HogeView

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self commonInit];
}
return self;
}

- (void)commonInit {
//対応するnibファイル名は"自身のクラス名.xib"となるように作成する
//ここでは"HogeView.xibとなり、nibファイル内のviewを取得する
NSString *className = NSStringFromClass([self class]);
UIView *subview = [[[NSBundle mainBundle] loadNibNamed:className owner:self options:0] firstObject];
[self addSubview:subview];

//AutoLayout対策
//selfのビューに対してぴったりに張り付くように設定
subview.translatesAutoresizingMaskIntoConstraints = NO;
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeTop]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeLeft]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeBottom]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeRight]];
}

- (NSLayoutConstraint *)pin:(id)item attribute:(NSLayoutAttribute)attribute
{
return [NSLayoutConstraint constraintWithItem:self
attribute:attribute
relatedBy:NSLayoutRelationEqual
toItem:item
attribute:attribute
multiplier:1.0
constant:0.0];
}

@end
このエントリーをはてなブックマークに追加

[iOS]CoreDataにautoincrementされるidを付加する

Attributeにあらかじめ「id(Integer)」を用意しておいてください。
データを追加する度にidが自動で設定されます。
lastInsertIDメソッドで最後に追加したIDの値が取得できます。
[iOS]CoreDataの取得したデータをソートする_1

//ChildInfo.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class MotherInfo;

NS_ASSUME_NONNULL_BEGIN

@interface ChildInfo : NSManagedObject

// Insert code here to declare functionality of your managed object subclass
- (NSInteger)lastInsertID;

@end

NS_ASSUME_NONNULL_END

#import "ChildInfo+CoreDataProperties.h"


//ChildInfo.m
#import "ChildInfo.h"

@implementation ChildInfo

- (void)awakeFromInsert {
[super awakeFromInsert];

self.id = [NSNumber numberWithInteger:[self __getMaxID]+1];
}

- (NSInteger)__getMaxID {
if(!self.managedObjectContext)return NSNotFound;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:self.entity.name];

fetchRequest.fetchLimit = 1;
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"id" ascending:NO]];

NSError *error = nil;

ChildInfo *firstData = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error].firstObject;

return [firstData.id integerValue];
}

- (NSInteger)lastInsertID {
return [self __getMaxID];
}

@end
このエントリーをはてなブックマークに追加

[iOS]CoreDataの取得したデータをソートする

ソートはfetch時の指定以外にも可能です。
取得したデータの「order」値に対して昇順ソートを指定します。
CoreData(画像添付)
[iOS]CoreDataの取得したデータをソートする_1

//このデータはMotherInfoのリレーションシップで一緒に取得したChildInfoデータに対して行いました。
NSArray *childInfos = motherInfo.child_infos.allObjects;
NSSortDescriptor *sortNameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"order" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortNameDescriptor, nil];
NSArray *childInfos_sorted = [childInfos sortedArrayUsingDescriptors:sortDescriptors];


参考URL:Sorting toMany relationship Set in core data
このエントリーをはてなブックマークに追加

.

.
このエントリーをはてなブックマークに追加
Translation


プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ