小编chr*_*roy的帖子

外键可以作为主键吗?

我目前正在为我们团队的项目设计数据库结构.我目前心中有这样一个问题:是否有可能将外键作为另一个表的主键?

以下是我们系统数据库设计的一些表格:

user_accounts
students
guidance_counselors
Run Code Online (Sandbox Code Playgroud)

我想要发生的是,该user_accounts表应包含ID(据称是系统的登录凭证)以及学生用户和指导顾问用户的密码.简而言之,studentsguidance_counselors表的主键也是表中的外键user_accounts.但我不确定是否允许.

另一个问题是:student_rec还存在一个表,它需要一个student_number(user_iduser_accounts表中)和一个guidance_counsellor_id(也在user_id其中user_accounts)的每个记录.如果学生和辅导员的ID都来自user_accounts table,我将如何设计student_rec表格?为了将来参考,我如何手动将其编写为SQL代码?

这一直困扰着我,我找不到任何具体或肯定的答案.

mysql sql database foreign-keys primary-key

18
推荐指数
2
解决办法
4万
查看次数

在Button Click上移动到iOS中的另一个视图控制器

我是iOS新手,我仍在努力掌握一些事情.我在XCode 5中尝试这个简单的程序,当用户点击按钮时,他将被重定向到另一个视图控制器.我做了其他论坛告诉其他人做的事情,但我似乎遇到了一个错误.

这是我的代码:

在ViewController.m中:

- (IBAction)button1:(id)sender {

    WebServiceViewController *wc = [[WebServiceViewController alloc] 
           initWithNibName:@"WebServiceViewController" 
           bundle:nil];

    [self.navigationController pushViewController:wc animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

我在标题中放置了一个导入"WebServiceViewController.h".

这是错误(不是IDE错误消息,但也不是成功):

在此输入图像描述

这是一个例外:

2013-10-25 02:05:51.904 sample[16318:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/Guest/Library/Application Support/iPhone Simulator/7.0/Applications/C6FA1F33-5E11-40C2-8C69-DA368F21CA5F/sample.app> (loaded)' with name 'WebServiceViewController''
*** First throw call stack:
(
    0   CoreFoundation                      0x017345e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x014b78b6 objc_exception_throw + 44
    2   CoreFoundation                      0x017343bb +[NSException raise:format:] + 139
    3   UIKit                               0x004ca65c -[UINib instantiateWithOwner:options:] + 951
    4 …
Run Code Online (Sandbox Code Playgroud)

xcode cocoa objective-c ios

12
推荐指数
1
解决办法
2万
查看次数

iOS中未调用自定义委派方法

我在iOS应用程序中从Web服务获取数据时遇到问题.我有一个名为LoginService的NSObject类.当用户单击Login时,将从ViewController调用LoginService的loginWithUsername方法.

在我的LoginService中,我创建了一个名为LoginServiceDelegate的委托.以下是LoginService.h中的代码:

//Creating custom delegate
@protocol LoginServiceProtocol <NSObject>
-(void)loginResult:(NSDictionary*)loginData;
@end


@interface LoginService : NSObject<NSURLConnectionDataDelegate>{
    NSMutableData* _responseData;
    id<LoginServiceProtocol>_delegate;
}
@property(nonatomic,strong)id<LoginServiceProtocol>delegate;
//End of custom delegate creation 
Run Code Online (Sandbox Code Playgroud)

在LoginService.m中实现:

-(void)loginResult:(NSDictionary*)loginData{
    NSLog(@"%@",loginData);
}
Run Code Online (Sandbox Code Playgroud)

现在我的LoginService也是NSURLConnection的委托.调用委托方法connectionDidFinishLoading后,获取的数据将使用JSON转换为NSDictionary并传递给loginResult.它适用于LoginService,正在记录所提取的数据.

现在我的问题是我试图设置例如,从ViewController.m中的Login按钮下的标签获取数据的值.这只是尝试我是否可以通过LoginService委托成功获取数据.问题是,我做不到.ViewController已经成为LoginService的委托.我在viewDidLoad方法和loginWithUserName方法中都尝试了它,这是按下登录按钮时调用的方法.

我在ViewController.m的viewDidLoad方法中有这个代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    LoginService *ls = [[LoginService alloc]init];
    ls.delegate=self;
    [ls loginResult];

}
Run Code Online (Sandbox Code Playgroud)

首先,我尝试将标签的文本设置为登录结果,但由于我失败了,我有这个代码只是为了看看是否在ViewController.m中调用了LoginService委托方法:

- (void)loginResult:(NSDictionary *)loginData{
    NSLog(@"reached");
}
Run Code Online (Sandbox Code Playgroud)

这可能是一个非常基本的问题,但我对iOS编程非常陌生,这让我感到很困惑.我真的希望有人可以帮助我.

delegates objective-c ios

3
推荐指数
1
解决办法
7529
查看次数

使用CodeIgniter 3中的Illuminate/Database Eloquent ORM进行多个数据库连接

我刚刚将Laravel的数据库层Eloquent包含在我的CodeIgniter 3项目中.然而,我的问题是我无法使用Eloquent模型连接到多个数据库.

对于默认DB,这是我配置DB的方式:

$capsule = new Capsule;

$capsule->addConnection(array(
        'driver'    => 'mysql',
        'host'      => "localhost",
        'database'  => "employees_db",
        'username'  => "root",
        'password'  => "",
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        ));

$capsule->setAsGlobal();
$capsule->bootEloquent();
Run Code Online (Sandbox Code Playgroud)

以上效果很好.但我有一个来自另一个数据库的员工表.我可以使用查询构建器来使用它,但是使用Eloquent模型会失败.

我试过这个:

$employees = new Capsule;

$employees->addConnection(array(
        'driver'    => 'mysql',
        'host'      => "host2",
        'database'  => "employees_db",
        'username'  => "user",
        'password'  => "pass",
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        ),'employees');

$employees->setAsGlobal();
Run Code Online (Sandbox Code Playgroud)

尝试设置一个Eloquent模型并使用如下连接:

protected $connection = "employees";
Run Code Online (Sandbox Code Playgroud)

是否可以使用Laravel之外的Illuminate\Database Eloquent ORM连接到多个数据库?如果有,怎么样?

php eloquent illuminate-container

3
推荐指数
1
解决办法
5066
查看次数

在文档准备好的情况下运行PHP函数?

无论如何,当文档完全加载时,我是否运行某个PHP函数?我正在尝试运行一个函数,它会在完全加载文档时将通知标记为只读.我能做什么?

javascript php

2
推荐指数
1
解决办法
1768
查看次数

TextArea中的HTML?

所以我在我的网站上有这个textarea.默认情况下,它的内容如下:

Name : Sample Value
Age : Sample Value
Location : Sample Value
Run Code Online (Sandbox Code Playgroud)

在用户点击按钮并将其插入数据库之前,它是可编辑的,尽管我没有使用富文本编辑器,因为它只是一个简单的文本.

由于基本HTML代码在textarea标签内不是浏览器可读的,因此我习惯&#10;将行分开.

现在我的问题是,当我在服务器端读取textarea标签的值时,我无法包含HTML代码.

因此,插入到数据库中的值也不是HTML格式的,并且当它再次被提取到Web浏览器中时,它根本没有格式.

我有什么替代品?谢谢.

html

2
推荐指数
1
解决办法
7811
查看次数

如何检查Excel文件的第一行或哪些列在Laravel Excel中是否有效?

我正在尝试检查用户上传的excel文件是否具有正确的列/第一行/属性,然后再读入其他行.我正在使用Laravel 4和MaatWebsite的 Laravel Excel.

我创建了一个函数,允许用户通过导入excel文件来更新系统数据库的employee表.

现在正确的Excel文件,有,比方说,3列:firstname,lastname,和username.如果excel文件具有所有这些属性/列,我现在将读取以下每一行并验证每一行,这实际上不是我现在问题的一部分.

但是如果excel文件中没有3个属性/列中的任何一个,我将忽略该请求并返回错误.

我尝试使用它,它获取lastname属性:

$sample = Excel::selectSheetsByIndex(0)->load($readFile, function($reader){})->get(array("lastname"));
Run Code Online (Sandbox Code Playgroud)

但即使lastname没有找到,$ sample仍然不为空,所以我无法检查是否lastname存在.

如何检查属性/列是否存在?

更新:

如果属性行之后的第一行具有所有需要的属性,那么我选择的答案将完美地运行.例如:如果有值firstname,lastnameusername.

但是,如果first name缺少第一个非属性行(引用列名的属性行)的值(或任何attritbute值),则提供的脚本将返回false,即使excel文件具有所有firstname,lastnameusername属性.

所以我将脚本修改为:

  1. 首先,我读了excel文件.我还声明了一个布尔变量来标记excel文件是否有效.

$excelChecker = Excel::selectSheetsByIndex(0)->load('path/to/file', function($reader){})->get()->toArray();

$excelIsValid = false;
Run Code Online (Sandbox Code Playgroud)
  1. 然后我循环遍历所有的结果,并检查是否至少一次,全部所需要的值(firstname,lastname,和username)已经被设置或都存在.

    foreach($excelChecker as $ex){
    
        if(isset($ex["lastname"]) && isset($ex["firstname"]) && isset($ex["username"])){
             $excelIsValid = true;
       }
    }
    
    Run Code Online (Sandbox Code Playgroud)

说明:

如果$excelIsValid仍然false …

phpexcel laravel laravel-4 laravel-excel

2
推荐指数
1
解决办法
1万
查看次数

在Laravel Eloquent中使用联接获取多个记录

我很擅长使用Laravel,因此对Eloquent来说.我对Eloquent的桌子关系感到困惑.

现在我了解了如何实现简单连接,例如Laravel 4.2文档中的示例,该文档对于一对多关系,其中a comment属于一个post,但a post可以有很多comments.他们使用这种语法从一篇文章中获取评论:

Post::find(1)->comments;
Run Code Online (Sandbox Code Playgroud)

在MySQL中,它可能是:

SELECT * FROM comments
JOIN posts ON posts.id=comments.post_id
WHERE posts.id=1
Run Code Online (Sandbox Code Playgroud)

如果我想要得到的结果是这样的,不仅仅是一行:

SELECT * FROM comments
JOIN posts ON posts.id=comments.post_id
Run Code Online (Sandbox Code Playgroud)

根据我上面给出的例子,我知道它没有多大意义.但是我如何在Eloquent中做到这一点?

为了提供更多细节,我实际上要做的是显示我的两个表的连接结果,assets以及asset_classifications.一个asset属于一个asset_classification,并且asset_classification有许多assets.

我正在尝试显示assets包含其中的表格数据asset_classifications.在MySQL中,它是这样的:

SELECT * FROM assets
JOIN asset_classifications ON asset_classifications.id=assets.classification_id
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Eloquent中执行它?

laravel eloquent laravel-4

0
推荐指数
1
解决办法
2685
查看次数